@@ -911,7 +911,7 @@ export class OAuthService extends AuthConfig implements OnDestroy {
911911 ) ;
912912
913913 return new Promise ( ( resolve , reject ) => {
914- let params = new HttpParams ( )
914+ let params = new HttpParams ( { encoder : new WebHttpUrlEncodingCodec ( ) } )
915915 . set ( 'grant_type' , 'refresh_token' )
916916 . set ( 'scope' , this . scope )
917917 . set ( 'refresh_token' , this . _storage . getItem ( 'refresh_token' ) ) ;
@@ -1644,7 +1644,7 @@ export class OAuthService extends AuthConfig implements OnDestroy {
16441644 if ( grantedScopes && ! Array . isArray ( grantedScopes ) ) {
16451645 this . _storage . setItem (
16461646 'granted_scopes' ,
1647- JSON . stringify ( grantedScopes . split ( '+ ' ) )
1647+ JSON . stringify ( grantedScopes . split ( ' ' ) )
16481648 ) ;
16491649 } else if ( grantedScopes && Array . isArray ( grantedScopes ) ) {
16501650 this . _storage . setItem ( 'granted_scopes' , JSON . stringify ( grantedScopes ) ) ;
@@ -1717,7 +1717,11 @@ export class OAuthService extends AuthConfig implements OnDestroy {
17171717 . replace ( / s e s s i o n _ s t a t e = [ ^ & \$ ] * / , '' )
17181718 . replace ( / ^ \? & / , '?' )
17191719 . replace ( / & $ / , '' )
1720- . replace ( / ^ \? $ / , '' ) + location . hash ;
1720+ . replace ( / ^ \? $ / , '' )
1721+ . replace ( / & + / g, '&' )
1722+ . replace ( / \? & / , '?' )
1723+ . replace ( / \? $ / , '' )
1724+ + location . hash ;
17211725
17221726 history . replaceState ( null , window . name , href ) ;
17231727 }
@@ -1781,7 +1785,7 @@ export class OAuthService extends AuthConfig implements OnDestroy {
17811785 code : string ,
17821786 options : LoginOptions
17831787 ) : Promise < object > {
1784- let params = new HttpParams ( )
1788+ let params = new HttpParams ( { encoder : new WebHttpUrlEncodingCodec ( ) } )
17851789 . set ( 'grant_type' , 'authorization_code' )
17861790 . set ( 'code' , code )
17871791 . set ( 'redirect_uri' , options . customRedirectUri || this . redirectUri ) ;
@@ -2352,7 +2356,7 @@ export class OAuthService extends AuthConfig implements OnDestroy {
23522356 if ( this . getAccessToken ( ) ) {
23532357 const expiresAt = this . _storage . getItem ( 'expires_at' ) ;
23542358 const now = this . dateTimeService . new ( ) ;
2355- if ( expiresAt && parseInt ( expiresAt , 10 ) < now . getTime ( ) ) {
2359+ if ( expiresAt && parseInt ( expiresAt , 10 ) < now . getTime ( ) + this . clockSkewInSec ) {
23562360 return false ;
23572361 }
23582362
@@ -2369,7 +2373,7 @@ export class OAuthService extends AuthConfig implements OnDestroy {
23692373 if ( this . getIdToken ( ) ) {
23702374 const expiresAt = this . _storage . getItem ( 'id_token_expires_at' ) ;
23712375 const now = this . dateTimeService . new ( ) ;
2372- if ( expiresAt && parseInt ( expiresAt , 10 ) < now . getTime ( ) ) {
2376+ if ( expiresAt && parseInt ( expiresAt , 10 ) < now . getTime ( ) + this . clockSkewInSec ) {
23732377 return false ;
23742378 }
23752379
@@ -2471,7 +2475,7 @@ export class OAuthService extends AuthConfig implements OnDestroy {
24712475 . replace ( / \{ \{ i d _ t o k e n \} \} / , encodeURIComponent ( id_token ) )
24722476 . replace ( / \{ \{ c l i e n t _ i d \} \} / , encodeURIComponent ( this . clientId ) ) ;
24732477 } else {
2474- let params = new HttpParams ( ) ;
2478+ let params = new HttpParams ( { encoder : new WebHttpUrlEncodingCodec ( ) } ) ;
24752479
24762480 if ( id_token ) {
24772481 params = params . set ( 'id_token_hint' , id_token ) ;
@@ -2709,7 +2713,7 @@ export class OAuthService extends AuthConfig implements OnDestroy {
27092713 return ;
27102714 }
27112715
2712- let params = new HttpParams ( ) ;
2716+ let params = new HttpParams ( { encoder : new WebHttpUrlEncodingCodec ( ) } ) ;
27132717
27142718 let headers = new HttpHeaders ( ) . set (
27152719 'Content-Type' ,
0 commit comments