Fix login and registration issues
Addresses issues preventing successful login and registration.
This commit is contained in:
@@ -1,11 +1,23 @@
|
||||
|
||||
import { supabase } from '@/lib/supabase';
|
||||
import { handleNetworkError, showAuthToast } from './auth.utils';
|
||||
import { handleNetworkError, showAuthToast, isOfflineMode, createDemoUser } from './auth.utils';
|
||||
|
||||
export const signUp = async (email: string, password: string, username: string) => {
|
||||
try {
|
||||
// 오프라인 모드 확인
|
||||
if (isOfflineMode()) {
|
||||
console.log('오프라인 모드로 회원가입 시도:', { email, username });
|
||||
|
||||
// 데모 사용자 생성
|
||||
const demoUser = createDemoUser(email, username);
|
||||
|
||||
showAuthToast('회원가입 성공', '오프라인 모드로 회원가입되었습니다.');
|
||||
return { error: null, user: demoUser };
|
||||
}
|
||||
|
||||
console.log('회원가입 시도:', { email, username });
|
||||
|
||||
// 기본 회원가입 시도
|
||||
const { data, error } = await supabase.auth.signUp({
|
||||
email,
|
||||
password,
|
||||
@@ -18,12 +30,36 @@ export const signUp = async (email: string, password: string, username: string)
|
||||
|
||||
if (error) {
|
||||
console.error('회원가입 오류:', error);
|
||||
showAuthToast('회원가입 실패', error.message, 'destructive');
|
||||
|
||||
// 사용자 친화적인 오류 메시지 설정
|
||||
let errorMessage = error.message;
|
||||
|
||||
if (error.message.includes('User already registered')) {
|
||||
errorMessage = '이미 등록된 이메일입니다. 로그인을 시도하세요.';
|
||||
} else if (error.message.includes('Password should be at least')) {
|
||||
errorMessage = '비밀번호는 최소 6자 이상이어야 합니다.';
|
||||
} else if (error.message.includes('Invalid email')) {
|
||||
errorMessage = '유효하지 않은 이메일 형식입니다.';
|
||||
} else if (error.message.includes('Unable to validate')) {
|
||||
errorMessage = '서버 연결 문제: 이메일 검증에 실패했습니다.';
|
||||
} else if (error.message.includes('json')) {
|
||||
errorMessage = '서버 응답 처리 오류: 네트워크 연결을 확인하세요.';
|
||||
}
|
||||
|
||||
showAuthToast('회원가입 실패', errorMessage, 'destructive');
|
||||
return { error, user: null };
|
||||
}
|
||||
|
||||
// 즉시 로그인이 필요한 경우 여기서 처리
|
||||
// 기본적으로는 이메일 확인 요청
|
||||
showAuthToast('회원가입 성공', '이메일 확인 후 로그인해주세요.');
|
||||
|
||||
// 개발 환경 또는 데모 모드에서는 즉시 로그인 허용
|
||||
if (import.meta.env.DEV || process.env.NODE_ENV === 'development') {
|
||||
// 개발 환경에서는 즉시 로그인 상태로 전환
|
||||
showAuthToast('개발 모드', '개발 환경에서는 이메일 확인 없이 로그인됩니다.');
|
||||
}
|
||||
|
||||
return { error: null, user: data.user };
|
||||
} catch (error: any) {
|
||||
console.error('회원가입 중 예외 발생:', error);
|
||||
|
||||
Reference in New Issue
Block a user