feat: refresh and save token
This commit is contained in:
parent
b9dee09060
commit
1c8aee2fa0
1 changed files with 15 additions and 1 deletions
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Reference in a new issue