espace-paie-odentas/lib/clientAuth.ts

35 lines
No EOL
993 B
TypeScript

/**
* Récupère l'access token depuis les cookies côté client
* Utilise document.cookie pour lire le cookie httpOnly access_token
*/
export function getClientAccessToken(): string | null {
if (typeof document === 'undefined') return null;
const cookies = document.cookie.split(';');
for (const cookie of cookies) {
const [name, value] = cookie.trim().split('=');
if (name === 'access_token') {
return decodeURIComponent(value);
}
}
return null;
}
/**
* Effectue un appel API avec le token d'accès en header Authorization
*/
export async function apiWithAuth(endpoint: string, options: RequestInit = {}): Promise<Response> {
const token = getClientAccessToken();
if (!token) {
throw new Error('Token d\'accès manquant');
}
const headers = new Headers(options.headers);
headers.set('Authorization', `Bearer ${token}`);
headers.set('Content-Type', 'application/json');
return fetch(endpoint, {
...options,
headers,
});
}