clip / apps /frontend /src /lib /adminAuth.ts
Poki01
Require admin token for private access
3bbb98d
export const ADMIN_TOKEN_STORAGE_KEY = 'adminToken';
export const getAdminToken = (): string | null => {
if (typeof window === 'undefined') return null;
return localStorage.getItem(ADMIN_TOKEN_STORAGE_KEY);
};
export const setAdminToken = (token: string) => {
if (typeof window === 'undefined') return;
localStorage.setItem(ADMIN_TOKEN_STORAGE_KEY, token);
};
export const clearAdminToken = () => {
if (typeof window === 'undefined') return;
localStorage.removeItem(ADMIN_TOKEN_STORAGE_KEY);
};
export const withAdminTokenHeader = (headers: HeadersInit = {}): HeadersInit => {
const token = getAdminToken();
if (!token) return headers;
return {
...headers,
'x-admin-token': token,
};
};
export const appendTokenToUrl = (url: string): string => {
const token = getAdminToken();
if (!token) return url;
const [base, search] = url.split('?');
const params = new URLSearchParams(search || '');
params.set('token', token);
return `${base}?${params.toString()}`;
};