Modification des pages d'authentification
This commit is contained in:
@@ -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>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user