Skip to content

Commit

Permalink
Remove authentication tokens when the token is no longer valid and re…
Browse files Browse the repository at this point in the history
…load the page to let oauth library refresh the token
  • Loading branch information
alep85 committed Sep 3, 2024
1 parent 00022c7 commit b0518ea
Showing 1 changed file with 23 additions and 1 deletion.
24 changes: 23 additions & 1 deletion lib/core/src/lib/auth/oidc/redirect-auth.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import { Inject, Injectable, inject } from '@angular/core';
import { AuthConfig, AUTH_CONFIG, OAuthErrorEvent, OAuthEvent, OAuthService, OAuthStorage, TokenResponse, LoginOptions, OAuthSuccessEvent } from 'angular-oauth2-oidc';
import { JwksValidationHandler } from 'angular-oauth2-oidc-jwks';
import { from, Observable } from 'rxjs';
import { distinctUntilChanged, filter, map, shareReplay } from 'rxjs/operators';
import { distinctUntilChanged, filter, map, shareReplay, take } from 'rxjs/operators';
import { AuthService } from './auth.service';
import { AUTH_MODULE_CONFIG, AuthModuleConfig } from './auth-config';

Expand Down Expand Up @@ -53,6 +53,21 @@ export class RedirectAuthService extends AuthService {

private authConfig!: AuthConfig | Promise<AuthConfig>;

private readonly AUTH_STORAGE_ITEMS: string[] = [
'access_token',
'access_token_stored_at',
'expires_at',
'granted_scopes',
'id_token',
'id_token_claims_obj',
'id_token_expires_at',
'id_token_stored_at',
'nonce',
'PKCE_verifier',
'refresh_token',
'session_state'
];

constructor(
private oauthService: OAuthService,
private _oauthStorage: OAuthStorage,
Expand All @@ -69,6 +84,13 @@ export class RedirectAuthService extends AuthService {
shareReplay(1)
);

this.oauthService.events.pipe(take(1)).subscribe(() => {
if(this.oauthService.getAccessToken() && !this.authenticated){
this.AUTH_STORAGE_ITEMS.map((item: string) => { this._oauthStorage.removeItem(item); });
window.location.reload();
}
});

this.onLogin = this.authenticated$.pipe(
filter((authenticated) => authenticated),
map(() => undefined)
Expand Down

0 comments on commit b0518ea

Please sign in to comment.