Modification des pages d'authentification

This commit is contained in:
2026-06-14 21:58:05 +02:00
parent dc28b12c27
commit 9f6363ec20
20 changed files with 2494 additions and 172 deletions
+19 -3
View File
@@ -17,16 +17,32 @@ export function AuthProvider({ children }) {
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [token]);
const login = async (email, password) => {
const r = await api.post('/auth/login', { email, password });
const login = async (email, password, deviceToken) => {
const body = { email, password, ...(deviceToken ? { deviceToken } : {}) };
const r = await api.post('/auth/login', body);
if (r.requires2FA) {
// Authentification incomplète — retourne les infos pour la page Login
return { requires2FA: true, sessionToken: r.sessionToken, email: r.email };
}
localStorage.setItem('cl_token', r.token);
setToken(r.token);
setUser(r.user);
return r.user;
};
// Appelé par Login après validation du code 2FA
const completeLogin = (token, userData) => {
localStorage.setItem('cl_token', token);
setToken(token);
setUser(userData);
};
const register = async (email, password, displayName) => {
const r = await api.post('/auth/register', { email, password, displayName });
if (r.requiresVerification) {
// Compte créé mais email non vérifié — pas de connexion automatique
return { requiresVerification: true, email: r.email };
}
localStorage.setItem('cl_token', r.token);
setToken(r.token);
setUser(r.user);
@@ -54,7 +70,7 @@ export function AuthProvider({ children }) {
const isAdmin = user?.role === 'admin';
return (
<AuthCtx.Provider value={{ token, user, loading, login, register, logout, updateUser, isAdmin }}>
<AuthCtx.Provider value={{ token, user, loading, login, completeLogin, register, logout, updateUser, isAdmin }}>
{children}
</AuthCtx.Provider>
);