minor: retry logged in user after token refresh (#16215)

* minor: retry logged in user after token refresh

* minor change

* chore: remove unused code in AuthProvider.tsx
This commit is contained in:
Sachin Chaurasiya 2024-05-10 11:22:17 +05:30 committed by GitHub
parent a5e30a0cdd
commit 9b7bdb1ea3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -99,6 +99,7 @@ const isEmailVerifyField = 'isEmailVerified';
let requestInterceptor: number | null = null;
let responseInterceptor: number | null = null;
let failedLoggedInUserRequest: boolean | null;
export const AuthProvider = ({
childComponentType,
@ -290,6 +291,12 @@ export const AuthProvider = ({
// Start expiry timer on successful silent signIn
// eslint-disable-next-line @typescript-eslint/no-use-before-define
startTokenExpiryTimer();
// Retry the failed request after successful silent signIn
if (failedLoggedInUserRequest) {
await getLoggedInUserDetails();
failedLoggedInUserRequest = null;
}
} else {
// reset user details if silent signIn fails
resetUserDetails(forceLogout);
@ -510,6 +517,10 @@ export const AuthProvider = ({
if (error.response) {
const { status } = error.response;
if (status === ClientErrors.UNAUTHORIZED) {
// store the failed request for retry after successful silent signIn
if (error.config.url === '/users/loggedInUser') {
failedLoggedInUserRequest = true;
}
handleStoreProtectedRedirectPath();
trySilentSignIn(true);
}