Как обновить JWT, предоставленный Django-Rest-Framework, с помощью Apisauce из моего React-Native приложения?

Я создаю приложение с бэкендом Django-Rest-Framework и использую dj-rest-auth для аутентификации с помощью Simple JWT, а для фронтенда я использую React-Native и делаю свои api вызовы с помощью api-sauce (ссылка на github -> API-Sauce). API-Sauce построен на axios

Это мой основной код clientAPI, который вызывает Django-Rest-Framework из моего React-Native приложения

import { create } from "apisauce";
import authStorage from "../auth/authStorage";

const baseURL = "http://192.168.0.109:8000/api";

const apiClient = create({
  baseURL: baseURL,
});

apiClient.addAsyncRequestTransform(async (request) => {
  const authToken = await authStorage.getToken();
  if (!authToken) return;
  request.headers["Authorization"] =
    "Bearer " + JSON.parse(authToken).access_token;
});

export default apiClient;

Это прекрасно работает до тех пор, пока токен активен. После истечения срока действия токена, чтобы обновить токен, я должен сделать следующее

Target URL - http://192.168.0.109:8000/api/token/refresh/
Header - "Content-Type" : "application/json"
data - {"refresh":"refresh_token"}

// refresh_token is obtained from authStorage in the above code-snippet like so
//JSON.parse(authToken).refresh_token

Как я могу эффективно добавить код, обновляющий мой токен, в мой существующий код, который заставляет мой API автоматически обновлять токен?

Вернуться на верх