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