let _prefix = 'ema-auth'; export function configureAuthStorage(prefix: string) { _prefix = prefix; } function key(k: string) { return `${_prefix}-${k}`; } export const authStorage = { getToken: () => localStorage.getItem(key('auth-token')) ?? undefined, setToken: (token: string) => localStorage.setItem(key('auth-token'), token), getRefreshToken: () => localStorage.getItem(key('refresh-token')) ?? undefined, setRefreshToken: (t: string) => localStorage.setItem(key('refresh-token'), t), getUser: (): T | null => { try { return JSON.parse(localStorage.getItem(key('auth-user')) ?? 'null') as T | null; } catch { return null; } }, setUser: (u: T) => localStorage.setItem(key('auth-user'), JSON.stringify(u)), clear: () => { [key('auth-token'), key('refresh-token'), key('auth-user')].forEach((k) => localStorage.removeItem(k), ); document.cookie = 'auth-token=; path=/; expires=Thu, 01 Jan 1970 00:00:00 UTC; SameSite=Lax'; }, };