@@ -13,7 +13,7 @@ import { getDetail, Detail } from '@imtbl/metrics';
1313import localForage from 'localforage' ;
1414import DeviceCredentialsManager from './storage/device_credentials_manager' ;
1515import logger from './utils/logger' ;
16- import { isTokenExpired } from './utils/token' ;
16+ import { isAccessTokenExpiredOrExpiring } from './utils/token' ;
1717import { PassportError , PassportErrorType , withPassportError } from './errors/passportError' ;
1818import {
1919 PassportMetadata ,
@@ -70,7 +70,7 @@ const getAuthConfiguration = (config: PassportConfiguration): UserManagerSetting
7070 end_session_endpoint : endSessionEndpoint . toString ( ) ,
7171 revocation_endpoint : `${ authenticationDomain } /oauth/revoke` ,
7272 } ,
73- mergeClaimsStrategy : { array : 'merge' } ,
73+ // mergeClaimsStrategy: { array: 'merge' },
7474 automaticSilentRenew : false , // Disabled until https://github.com/authts/oidc-client-ts/issues/430 has been resolved
7575 scope : oidcConfiguration . scope ,
7676 userStore,
@@ -458,13 +458,15 @@ export default class AuthManager {
458458 const oidcUser = await this . userManager . getUser ( ) ;
459459 if ( ! oidcUser ) return null ;
460460
461- if ( ! isTokenExpired ( oidcUser ) ) {
461+ // if the token is not expired or expiring in 30 seconds or less, return the user
462+ if ( ! isAccessTokenExpiredOrExpiring ( oidcUser ) ) {
462463 const user = AuthManager . mapOidcUserToDomainModel ( oidcUser ) ;
463464 if ( user && typeAssertion ( user ) ) {
464465 return user ;
465466 }
466467 }
467468
469+ // if the token is expired or expiring in 30 seconds or less, refresh the token
468470 if ( oidcUser . refresh_token ) {
469471 const user = await this . refreshTokenAndUpdatePromise ( ) ;
470472 if ( user && typeAssertion ( user ) ) {
0 commit comments