From e087db8d4bf5037abb521a1e769e55059286309b Mon Sep 17 00:00:00 2001 From: erdemcaygor Date: Fri, 24 Oct 2025 17:59:35 +0300 Subject: [PATCH] token storage worker added --- .../services/memory-token-storage.service.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/npm/ng-packs/packages/oauth/src/lib/services/memory-token-storage.service.ts b/npm/ng-packs/packages/oauth/src/lib/services/memory-token-storage.service.ts index 1d35cabff3..390cdccea5 100644 --- a/npm/ng-packs/packages/oauth/src/lib/services/memory-token-storage.service.ts +++ b/npm/ng-packs/packages/oauth/src/lib/services/memory-token-storage.service.ts @@ -1,5 +1,4 @@ -// shared-worker-token-storage.service.ts -import { inject, Injectable } from '@angular/core'; +import { DOCUMENT, inject, Injectable } from '@angular/core'; import { OAuthStorage } from 'angular-oauth2-oidc'; import { AbpLocalStorageService } from '@abp/ng.core'; @@ -18,6 +17,7 @@ export class MemoryTokenStorageService implements OAuthStorage { private port?: MessagePort; private cache = new Map(); private localStorageService = inject(AbpLocalStorageService); + private _document = inject(DOCUMENT); private useSharedWorker = false; constructor() { @@ -43,13 +43,16 @@ export class MemoryTokenStorageService implements OAuthStorage { switch (action) { case 'set': + this.checkAuthStateChanges(key); this.cache.set(key, value); break; case 'remove': this.cache.delete(key); + this.refreshDocument(); break; case 'clear': this.cache.clear(); + this.refreshDocument(); break; } }; @@ -111,4 +114,16 @@ export class MemoryTokenStorageService implements OAuthStorage { } this.cache.clear(); } + + private checkAuthStateChanges(key: string): void { + console.log("current access token:", this.cache.get('access_token')); + if (key !== 'access_token' && !this.cache.get('access_token')) { + this.refreshDocument(); + } + } + + private refreshDocument(): void { + this._document.defaultView?.location.reload(); + } + }