Skip to content

Commit 50f2eb1

Browse files
committed
fix: harden token storage session cleanup fallback
1 parent 762a005 commit 50f2eb1

1 file changed

Lines changed: 13 additions & 3 deletions

File tree

frontend/src/hooks/useAccessToken.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,16 @@ const resolveStorage = (): Storage => {
4141
}
4242
};
4343

44+
const clearLegacySessionToken = () => {
45+
if (typeof window === 'undefined') return;
46+
47+
try {
48+
window.sessionStorage?.removeItem(ACCESS_TOKEN_KEY);
49+
} catch {
50+
// Ignore restricted sessionStorage access (privacy mode, sandboxed contexts).
51+
}
52+
};
53+
4454
export function useAccessToken() {
4555
const [state, setState] = useState<AccessTokenState>({
4656
token: null,
@@ -60,7 +70,7 @@ export function useAccessToken() {
6070

6171
if (!token && legacyToken) {
6272
storage.setItem(ACCESS_TOKEN_KEY, legacyToken);
63-
window.sessionStorage?.removeItem(ACCESS_TOKEN_KEY);
73+
clearLegacySessionToken();
6474
}
6575

6676
setState({
@@ -83,7 +93,7 @@ export function useAccessToken() {
8393

8494
const storage = resolveStorage();
8595
storage.setItem(ACCESS_TOKEN_KEY, normalized);
86-
if (typeof window !== 'undefined') window.sessionStorage?.removeItem(ACCESS_TOKEN_KEY);
96+
clearLegacySessionToken();
8797

8898
setState({
8999
token: normalized,
@@ -95,7 +105,7 @@ export function useAccessToken() {
95105
const clearToken = () => {
96106
const storage = resolveStorage();
97107
storage.removeItem(ACCESS_TOKEN_KEY);
98-
if (typeof window !== 'undefined') window.sessionStorage?.removeItem(ACCESS_TOKEN_KEY);
108+
clearLegacySessionToken();
99109

100110
setState({
101111
token: null,

0 commit comments

Comments
 (0)