mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-28 23:43:22 +00:00
chore: WIP uilisant d'un CSRF global à l'appli
This commit is contained in:
39
Front-End/src/context/CsrfContext.js
Normal file
39
Front-End/src/context/CsrfContext.js
Normal 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);
|
||||
};
|
||||
Reference in New Issue
Block a user