File size: 1,007 Bytes
3bbb98d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
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()}`;
};
|