File tree Expand file tree Collapse file tree
openmetadata-ui/src/main/resources/ui/src
components/Auth/AuthProviders Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -517,10 +517,10 @@ export const AuthProvider = ({
517517 // Refresh the token and retry the requests in the queue
518518 tokenService . current
519519 . refreshToken ( )
520- . then ( ( token ) => {
520+ . then ( async ( token ) => {
521521 if ( token ) {
522522 // Retry the pending requests
523- initializeAxiosInterceptors ( ) ;
523+ await initializeAxiosInterceptors ( ) ;
524524 pendingRequests . forEach ( ( { resolve, reject, config } ) => {
525525 axiosClient . request ( config ) . then ( resolve ) . catch ( reject ) ;
526526 } ) ;
Original file line number Diff line number Diff line change @@ -87,8 +87,8 @@ class TokenService {
8787 this . setRefreshInProgress ( ) ;
8888
8989 try {
90- const token = await getOidcToken ( ) ;
91- const { isExpired, timeoutExpiry } = extractDetailsFromToken ( token ) ;
90+ const oldToken = await getOidcToken ( ) ;
91+ const { isExpired, timeoutExpiry } = extractDetailsFromToken ( oldToken ) ;
9292
9393 // If token is expired or timeoutExpiry is less than 0 then try to silent signIn
9494 if ( isExpired || timeoutExpiry <= 0 ) {
@@ -160,6 +160,21 @@ class TokenService {
160160 isTokenUpdateInProgress ( ) {
161161 return localStorage . getItem ( REFRESH_IN_PROGRESS_KEY ) === 'true' ;
162162 }
163+
164+ private async waitForTokenPersistence ( oldToken : string ) {
165+ const maxAttempts = 20 ;
166+ const delayMs = 50 ;
167+
168+ for ( let attempt = 0 ; attempt < maxAttempts ; attempt ++ ) {
169+ await new Promise ( ( resolve ) => setTimeout ( resolve , delayMs ) ) ;
170+
171+ const currentToken = await getOidcToken ( ) ;
172+
173+ if ( currentToken && currentToken !== oldToken ) {
174+ return ;
175+ }
176+ }
177+ }
163178}
164179
165180export default TokenService ;
You can’t perform that action at this time.
0 commit comments