feat: refresh and save token

This commit is contained in:
Vinicius Souza 2024-11-11 14:57:22 +00:00
parent b9dee09060
commit 1c8aee2fa0

View file

@ -2,7 +2,7 @@ import axios, { AxiosError, AxiosInstance } from 'axios';
import { AppError } from '@utils/AppError';
import { storageAuthTokenGet } from '@storage/storageAuthToken';
import { storageAuthTokenGet, storageAuthTokenSave } from '@storage/storageAuthToken';
type SignOut = () => void;
@ -64,6 +64,20 @@ api.registerInterceptTokenManager = (signOut: SignOut) => {
}
isRefreshing = true;
return new Promise(async (resolve, reject) => {
try {
const { data } = api.post('/sessions/refresh_token', { refresh_token });
await storageAuthTokenSave({ token: data.token, refresh_token: data.refresh_token });
} catch (error: any) {
failedQueue.forEach((request) => request.onFailure(error));
signOut();
reject(error);
} finally {
isRefreshing = false;
failedQueue = [];
}
});
}
signOut();