Skip to content

Commit

Permalink
fix(oidc): temporary fix on lock need to be continued but require ref…
Browse files Browse the repository at this point in the history
…actor (release)
  • Loading branch information
guillaume-chervet committed Dec 15, 2023
1 parent 23c8715 commit 6667eab
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions packages/oidc-client/src/renewTokens.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,20 +34,26 @@ export async function renewTokensAndStartTimerAsync(oidc, refreshToken, forceRef
if(configuration?.storage === window?.sessionStorage && !serviceWorker) {
tokens = await syncTokens(oidc, refreshToken, forceRefresh, extras);
} else {
tokens = await navigator.locks.request(lockResourcesName, { ifAvailable: true }, async (lock) => {
if(!lock){
return tokens;
}
return await syncTokens(oidc, refreshToken, forceRefresh, extras);
const controller = new AbortController();
const timeout = Math.max(configuration.token_request_timeout??0, configuration.silent_login_timeout??0, 20000);
const timeoutId = timer.setTimeout(() => {
controller.abort();
}, timeout);
tokens = await navigator.locks.request(lockResourcesName, { signal: controller.signal }, async () => {
const tokens = await syncTokens(oidc, refreshToken, forceRefresh, extras);
timer.clearTimeout(timeoutId);
return tokens;
});
}

if(!tokens){
return null;
}

if (oidc.timeoutId) {
oidc.timeoutId = autoRenewTokens(oidc, tokens.refreshToken, oidc.tokens.expiresAt, extras);
}

return oidc.tokens;
}

Expand Down

0 comments on commit 6667eab

Please sign in to comment.