Переработка аутентификации
This commit is contained in:
parent
5572b5f440
commit
977b0ec5e3
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user