@@ -123,13 +123,7 @@ export class OAuthService
123
123
}
124
124
125
125
private restartRefreshTimerIfStillLoggedIn ( ) : void {
126
- if ( this . hasValidAccessToken ( ) ) {
127
- this . setupAccessTokenTimer ( ) ;
128
- }
129
-
130
- if ( this . hasValidIdToken ( ) ) {
131
- this . setupIdTokenTimer ( ) ;
132
- }
126
+ this . setupExpirationTimers ( ) ;
133
127
}
134
128
135
129
private setupSessionCheck ( ) {
@@ -218,16 +212,23 @@ export class OAuthService
218
212
219
213
this . clearAccessTokenTimer ( ) ;
220
214
this . clearIdTokenTimer ( ) ;
215
+ this . setupExpirationTimers ( ) ;
221
216
222
- if ( this . hasValidAccessToken ( ) ) {
223
- this . setupAccessTokenTimer ( ) ;
224
- }
217
+ } ) ;
218
+ }
225
219
226
- if ( this . hasValidIdToken ( ) ) {
227
- this . setupIdTokenTimer ( ) ;
228
- }
220
+ private setupExpirationTimers ( ) : void {
221
+ let idTokenExp = this . getIdTokenExpiration ( ) || Number . MAX_VALUE ;
222
+ let accessTokenExp = this . getAccessTokenExpiration ( ) || Number . MAX_VALUE ;
223
+ let useAccessTokenExp = accessTokenExp <= idTokenExp ;
229
224
230
- } ) ;
225
+ if ( this . hasValidAccessToken ( ) && useAccessTokenExp ) {
226
+ this . setupAccessTokenTimer ( ) ;
227
+ }
228
+
229
+ if ( this . hasValidIdToken ( ) && ! useAccessTokenExp ) {
230
+ this . setupIdTokenTimer ( ) ;
231
+ }
231
232
}
232
233
233
234
private setupAccessTokenTimer ( ) : void {
@@ -1285,6 +1286,7 @@ export class OAuthService
1285
1286
* as milliseconds since 1970.
1286
1287
*/
1287
1288
public getAccessTokenExpiration ( ) : number {
1289
+ if ( ! this . _storage . getItem ( 'expires_at' ) ) return null ;
1288
1290
return parseInt ( this . _storage . getItem ( 'expires_at' ) , 10 ) ;
1289
1291
}
1290
1292
@@ -1302,6 +1304,9 @@ export class OAuthService
1302
1304
* as milliseconds since 1970.
1303
1305
*/
1304
1306
public getIdTokenExpiration ( ) : number {
1307
+
1308
+ if ( ! this . _storage . getItem ( 'id_token_expires_at' ) ) return null ;
1309
+
1305
1310
return parseInt ( this . _storage . getItem ( 'id_token_expires_at' ) , 10 ) ;
1306
1311
}
1307
1312
0 commit comments