chore: WIP uilisant d'un CSRF global à l'appli

This commit is contained in:
N3WT DE COMPET
2025-02-17 09:26:12 +01:00
parent cccb5efa2c
commit ef1b036dcc
18 changed files with 563 additions and 145 deletions

View File

@ -0,0 +1,39 @@
'use client'; // Ajoutez cette ligne pour marquer ce fichier comme un composant client
import React, { createContext, useContext, useState, useEffect } from 'react';
import { BE_AUTH_CSRF_URL } from '@/utils/Url';
import { setCsrfToken } from '@/utils/getCsrfToken';
const CsrfContext = createContext();
export const CsrfProvider = ({ children }) => {
const [csrfToken, setCsrfTokenState] = useState('');
useEffect(() => {
fetch(`${BE_AUTH_CSRF_URL}`, {
method: 'GET',
credentials: 'include' // Inclut les cookies dans la requête
})
.then(response => response.json())
.then(data => {
if (data && data.csrfToken) {
setCsrfTokenState(data.csrfToken);
setCsrfToken(data.csrfToken); // Définir le token CSRF global
console.log('CSRF Token reçu:', data.csrfToken);
}
})
.catch(error => {
console.error('Error fetching CSRF token:', error);
});
}, []);
return (
<CsrfContext.Provider value={csrfToken}>
{children}
</CsrfContext.Provider>
);
};
export const useCsrfToken = () => {
return useContext(CsrfContext);
};