refactor: remove localStorage persistence from tokenStore to enforce in-memory session management

This commit is contained in:
taDuc
2026-06-17 01:14:22 +07:00
parent 85166c87ef
commit 3fd99c7de9
-24
View File
@@ -2,38 +2,14 @@ export type StoredTokens = {
access_token: string; access_token: string;
}; };
const LS_KEY = "uhm_auth_tokens_v1";
let cached: StoredTokens | null = null; let cached: StoredTokens | null = null;
function safeParseTokens(raw: string | null): StoredTokens | null {
if (!raw) return null;
try {
const v = JSON.parse(raw) as Partial<StoredTokens>;
if (!v || typeof v !== "object") return null;
if (typeof v.access_token !== "string") return null;
if (!v.access_token.trim()) return null;
return { access_token: v.access_token };
} catch {
return null;
}
}
export function getStoredTokens(): StoredTokens | null { export function getStoredTokens(): StoredTokens | null {
if (cached) return cached;
if (typeof window === "undefined") return null;
cached = safeParseTokens(window.localStorage.getItem(LS_KEY));
return cached; return cached;
} }
export function setStoredTokens(tokens: StoredTokens | null): void { export function setStoredTokens(tokens: StoredTokens | null): void {
cached = tokens; cached = tokens;
if (typeof window === "undefined") return;
if (!tokens) {
window.localStorage.removeItem(LS_KEY);
return;
}
window.localStorage.setItem(LS_KEY, JSON.stringify(tokens));
} }
export function getAccessToken(): string | null { export function getAccessToken(): string | null {