This commit is contained in:
Estifo77
2026-07-22 12:32:38 +03:00
parent abcb538e4f
commit 2c2464d12a
5 changed files with 52 additions and 19 deletions

View File

@@ -1,4 +1,6 @@
let _prefix = 'ema-auth';
import Cookies from "js-cookie";
let _prefix = "ema-auth";
export function configureAuthStorage(prefix: string) {
_prefix = prefix;
@@ -9,34 +11,54 @@ function key(k: string) {
}
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),
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 = unknown>(): T | null => {
try {
return JSON.parse(localStorage.getItem(key('auth-user')) ?? 'null') as T | null;
return JSON.parse(
localStorage.getItem(key("auth-user")) ?? "null",
) as T | null;
} catch {
return null;
}
},
setUser: <T>(u: T) => localStorage.setItem(key('auth-user'), JSON.stringify(u)),
getProfileId: () => localStorage.getItem(key('profile-id')) ?? undefined,
setProfileId: (id: string) => localStorage.setItem(key('profile-id'), id),
setUser: <T>(u: T) =>
localStorage.setItem(key("auth-user"), JSON.stringify(u)),
getProfileId: () => localStorage.getItem(key("profile-id")) ?? undefined,
setProfileId: (id: string) => localStorage.setItem(key("profile-id"), id),
getProfile: <T = unknown>(): T | null => {
try {
return JSON.parse(localStorage.getItem(key('current-profile')) ?? 'null') as T | null;
return JSON.parse(
localStorage.getItem(key("current-profile")) ?? "null",
) as T | null;
} catch {
return null;
}
},
setProfile: <T>(p: T) => localStorage.setItem(key('current-profile'), JSON.stringify(p)),
removeProfile: () => localStorage.removeItem(key('current-profile')),
setProfile: <T>(p: T) =>
localStorage.setItem(key("current-profile"), JSON.stringify(p)),
removeProfile: () => localStorage.removeItem(key("current-profile")),
clear: () => {
[key('auth-token'), key('refresh-token'), key('auth-user'), key('profile-id'), key('current-profile')].forEach((k) =>
localStorage.removeItem(k),
);
[
key("auth-token"),
key("refresh-token"),
key("auth-user"),
key("profile-id"),
key("current-profile"),
].forEach((k) => localStorage.removeItem(k));
document.cookie =
'auth-token=; path=/; expires=Thu, 01 Jan 1970 00:00:00 UTC; SameSite=Lax';
"auth-token=; path=/; expires=Thu, 01 Jan 1970 00:00:00 UTC; SameSite=Lax";
},
};
export const clearAllCookies = () => {
const cookies = Cookies.get();
Object.keys(cookies).forEach((name) => {
Cookies.remove(name);
Cookies.remove(name, { path: "/" });
});
};