fix problème d'authentification
This commit is contained in:
@@ -12,9 +12,26 @@ export interface UserPermissions {
|
||||
export const authService = {
|
||||
// Vérifier si l'utilisateur actuel est connecté
|
||||
async getCurrentUser() {
|
||||
const { data: { user }, error } = await supabase.auth.getUser();
|
||||
if (error) throw error;
|
||||
return user;
|
||||
try {
|
||||
const { data: { user }, error } = await supabase.auth.getUser();
|
||||
if (error) {
|
||||
console.error('❌ Erreur getCurrentUser:', error);
|
||||
// Si c'est une erreur de session manquante, retourner null au lieu de throw
|
||||
if (error.message?.includes('Auth session missing') || error.message?.includes('session_not_found')) {
|
||||
console.log('🔍 Session manquante, utilisateur non connecté');
|
||||
return null;
|
||||
}
|
||||
throw error;
|
||||
}
|
||||
return user;
|
||||
} catch (error: any) {
|
||||
console.error('❌ Exception getCurrentUser:', error);
|
||||
// Gérer les erreurs de session manquante
|
||||
if (error.message?.includes('Auth session missing') || error.message?.includes('session_not_found')) {
|
||||
return null;
|
||||
}
|
||||
throw error;
|
||||
}
|
||||
},
|
||||
|
||||
// Vérifier si l'utilisateur actuel est admin
|
||||
@@ -87,18 +104,56 @@ export const authService = {
|
||||
|
||||
// Connexion
|
||||
async signIn(email: string, password: string) {
|
||||
const { data, error } = await supabase.auth.signInWithPassword({
|
||||
email,
|
||||
password,
|
||||
});
|
||||
if (error) throw error;
|
||||
return data;
|
||||
try {
|
||||
console.log('🔐 Tentative de connexion pour:', email);
|
||||
|
||||
const { data, error } = await supabase.auth.signInWithPassword({
|
||||
email,
|
||||
password,
|
||||
});
|
||||
|
||||
if (error) {
|
||||
console.error('❌ Erreur de connexion:', error);
|
||||
throw error;
|
||||
}
|
||||
|
||||
console.log('✅ Connexion réussie pour:', email);
|
||||
return data;
|
||||
} catch (error) {
|
||||
console.error('❌ Exception lors de la connexion:', error);
|
||||
throw error;
|
||||
}
|
||||
},
|
||||
|
||||
// Déconnexion
|
||||
async signOut() {
|
||||
const { error } = await supabase.auth.signOut();
|
||||
if (error) throw error;
|
||||
try {
|
||||
// Déconnexion standard
|
||||
const { error } = await supabase.auth.signOut();
|
||||
if (error) throw error;
|
||||
|
||||
// Nettoyage supplémentaire pour éviter les problèmes de session
|
||||
// Supprimer tous les tokens du localStorage
|
||||
if (typeof window !== 'undefined') {
|
||||
const keys = Object.keys(localStorage);
|
||||
keys.forEach(key => {
|
||||
if (key.startsWith('sb-') || key.includes('supabase')) {
|
||||
localStorage.removeItem(key);
|
||||
}
|
||||
});
|
||||
|
||||
// Supprimer aussi du sessionStorage
|
||||
const sessionKeys = Object.keys(sessionStorage);
|
||||
sessionKeys.forEach(key => {
|
||||
if (key.startsWith('sb-') || key.includes('supabase')) {
|
||||
sessionStorage.removeItem(key);
|
||||
}
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Erreur lors de la déconnexion:', error);
|
||||
throw error;
|
||||
}
|
||||
},
|
||||
|
||||
// Inscription (pour les tests)
|
||||
|
||||
Reference in New Issue
Block a user