Как обновить 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 автоматически обновлять токен?