35 lines
No EOL
993 B
TypeScript
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,
|
|
});
|
|
} |