From 4714beec30b58f72bbcff15ab97469eb2fe6d770 Mon Sep 17 00:00:00 2001 From: Dan Percic Date: Wed, 13 Jul 2022 20:27:58 +0300 Subject: [PATCH] RED-4482: logout when session expires --- apps/red-ui/src/app/services/user.service.ts | 10 +++++++++- .../src/app/utils/global-error-handler.service.ts | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/apps/red-ui/src/app/services/user.service.ts b/apps/red-ui/src/app/services/user.service.ts index 200f95d16..1eef88fb5 100644 --- a/apps/red-ui/src/app/services/user.service.ts +++ b/apps/red-ui/src/app/services/user.service.ts @@ -65,7 +65,15 @@ export class UserService extends EntitiesService { const userId = (<{ sub: string }>decoded).sub; const roles = this._keycloakService.getUserRoles(true).filter(role => role.startsWith('RED_')); - const user = new User(await this._keycloakService.loadUserProfile(true), roles, userId); + let profile; + try { + profile = await this._keycloakService.loadUserProfile(true); + } catch (e) { + await this._keycloakService.logout(); + console.log(e); + } + + const user = new User(profile, roles, userId); this.replace(user); this.#currentUser$.next(this.find(userId)); diff --git a/apps/red-ui/src/app/utils/global-error-handler.service.ts b/apps/red-ui/src/app/utils/global-error-handler.service.ts index 8a5477c00..285d8354d 100644 --- a/apps/red-ui/src/app/utils/global-error-handler.service.ts +++ b/apps/red-ui/src/app/utils/global-error-handler.service.ts @@ -5,7 +5,7 @@ export class GlobalErrorHandler extends ErrorHandler { handleError(error: Error): void { const chunkFailedMessage = /Loading chunk [\d]+ failed/; console.write(error); - if (error.message?.includes('An error happened during access validation')) { + if (error?.message?.includes('An error happened during access validation')) { console.log('User is not authorized to access this page'); }