@@ -26,6 +26,7 @@ import {
2626 catchError
2727} from 'rxjs/operators' ;
2828import { DOCUMENT } from '@angular/common' ;
29+ import { DateTimeProvider } from './date-time-provider' ;
2930
3031import {
3132 ValidationHandler ,
@@ -120,7 +121,8 @@ export class OAuthService extends AuthConfig implements OnDestroy {
120121 protected urlHelper : UrlHelperService ,
121122 protected logger : OAuthLogger ,
122123 @Optional ( ) protected crypto : HashHandler ,
123- @Inject ( DOCUMENT ) document : any
124+ @Inject ( DOCUMENT ) document : any ,
125+ protected dateTimeService : DateTimeProvider ,
124126 ) {
125127 super ( ) ;
126128
@@ -463,7 +465,7 @@ export class OAuthService extends AuthConfig implements OnDestroy {
463465 }
464466
465467 protected calcTimeout ( storedAt : number , expiration : number ) : number {
466- const now = Date . now ( ) ;
468+ const now = this . dateTimeService . now ( ) ;
467469 const delta =
468470 ( expiration - storedAt ) * this . timeoutFactor - ( now - storedAt ) ;
469471 return Math . max ( 0 , delta ) ;
@@ -1572,10 +1574,10 @@ export class OAuthService extends AuthConfig implements OnDestroy {
15721574 this . _storage . setItem ( 'granted_scopes' , JSON . stringify ( grantedScopes ) ) ;
15731575 }
15741576
1575- this . _storage . setItem ( 'access_token_stored_at' , '' + Date . now ( ) ) ;
1577+ this . _storage . setItem ( 'access_token_stored_at' , '' + this . dateTimeService . now ( ) ) ;
15761578 if ( expiresIn ) {
15771579 const expiresInMilliSeconds = expiresIn * 1000 ;
1578- const now = new Date ( ) ;
1580+ const now = this . dateTimeService . new ( ) ;
15791581 const expiresAt = now . getTime ( ) + expiresInMilliSeconds ;
15801582 this . _storage . setItem ( 'expires_at' , '' + expiresAt ) ;
15811583 }
@@ -1973,7 +1975,7 @@ export class OAuthService extends AuthConfig implements OnDestroy {
19731975 this . _storage . setItem ( 'id_token' , idToken . idToken ) ;
19741976 this . _storage . setItem ( 'id_token_claims_obj' , idToken . idTokenClaimsJson ) ;
19751977 this . _storage . setItem ( 'id_token_expires_at' , '' + idToken . idTokenExpiresAt ) ;
1976- this . _storage . setItem ( 'id_token_stored_at' , '' + Date . now ( ) ) ;
1978+ this . _storage . setItem ( 'id_token_stored_at' , '' + this . dateTimeService . now ( ) ) ;
19771979 }
19781980
19791981 protected storeSessionState ( sessionState : string ) : void {
@@ -2094,7 +2096,7 @@ export class OAuthService extends AuthConfig implements OnDestroy {
20942096 return Promise . reject ( err ) ;
20952097 }
20962098
2097- const now = Date . now ( ) ;
2099+ const now = this . dateTimeService . now ( ) ;
20982100 const issuedAtMSec = claims . iat * 1000 ;
20992101 const expiresAtMSec = claims . exp * 1000 ;
21002102 const clockSkewInMSec = ( this . clockSkewInSec || 600 ) * 1000 ;
@@ -2254,7 +2256,7 @@ export class OAuthService extends AuthConfig implements OnDestroy {
22542256 public hasValidAccessToken ( ) : boolean {
22552257 if ( this . getAccessToken ( ) ) {
22562258 const expiresAt = this . _storage . getItem ( 'expires_at' ) ;
2257- const now = new Date ( ) ;
2259+ const now = this . dateTimeService . new ( ) ;
22582260 if ( expiresAt && parseInt ( expiresAt , 10 ) < now . getTime ( ) ) {
22592261 return false ;
22602262 }
@@ -2271,7 +2273,7 @@ export class OAuthService extends AuthConfig implements OnDestroy {
22712273 public hasValidIdToken ( ) : boolean {
22722274 if ( this . getIdToken ( ) ) {
22732275 const expiresAt = this . _storage . getItem ( 'id_token_expires_at' ) ;
2274- const now = new Date ( ) ;
2276+ const now = this . dateTimeService . new ( ) ;
22752277 if ( expiresAt && parseInt ( expiresAt , 10 ) < now . getTime ( ) ) {
22762278 return false ;
22772279 }
0 commit comments