Переработка аутентификации

This commit is contained in:
degradin 2025-05-07 15:20:04 +03:00
parent 5572b5f440
commit 977b0ec5e3

View File

@ -12,36 +12,52 @@ export const supabase = createClient(supabaseUrl, supabaseAnonKey);
// Auth functions // Auth functions
export const signUp = async (email, password, username) => { export const signUp = async (email, password, username) => {
try { try {
// Регистрируем пользователя console.log('Начало регистрации:', { email, username });
const { data, error } = await supabase.auth.signUp({
// Регистрация пользователя
const { data: authData, error: authError } = await supabase.auth.signUp({
email, email,
password, password,
options: { options: {
data: { username } data: {
username: username
}
} }
}); });
if (error) throw error; if (authError) {
console.error('Ошибка при регистрации пользователя:', authError);
// Создаем профиль в таблице users throw authError;
const { error: profileError } = await supabase }
console.log('Пользователь создан в auth:', authData);
// Создание профиля пользователя
const { data: profileData, error: profileError } = await supabase
.from('users') .from('users')
.insert({ .insert({
id: data.user.id, id: authData.user.id,
email, username: username,
username, email: email,
role: 'user', role: 'user',
is_critic: false,
created_at: new Date().toISOString() created_at: new Date().toISOString()
}); })
.select()
.single();
if (profileError) { if (profileError) {
console.error('Ошибка при создании профиля:', profileError);
// Если не удалось создать профиль, удаляем пользователя // Если не удалось создать профиль, удаляем пользователя
await supabase.auth.admin.deleteUser(data.user.id); await supabase.auth.admin.deleteUser(authData.user.id);
throw profileError; throw profileError;
} }
return data; console.log('Профиль пользователя создан:', profileData);
return { user: authData.user, profile: profileData };
} catch (error) { } catch (error) {
console.error('Ошибка при регистрации:', error);
throw error; throw error;
} }
}; };
@ -64,12 +80,12 @@ export const getCurrentUser = async () => {
}; };
// User functions // User functions
export const getUserProfile = async (userId) => { export const getUserProfile = async (username) => {
const { data, error } = await supabase const { data, error } = await supabase
.from('users') .from('users')
.select('*') .select('*')
.eq('id', userId) .eq('username', username)
.maybeSingle(); .single();
if (error) throw error; if (error) throw error;
return data; return data;