Improve login error message
Update the login error message to be more specific when authentication fails due to incorrect email or password.
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { supabase } from '@/lib/supabase';
|
||||
|
||||
import { supabase } from '@/integrations/supabase/client';
|
||||
import {
|
||||
handleNetworkError,
|
||||
parseResponse,
|
||||
@@ -10,66 +11,34 @@ import { getProxyType, isCorsProxyEnabled } from '@/lib/supabase/config';
|
||||
|
||||
export const signIn = async (email: string, password: string) => {
|
||||
try {
|
||||
// 서버 연결 상태 먼저 확인
|
||||
const connectionStatus = await verifyServerConnection();
|
||||
if (!connectionStatus.connected) {
|
||||
console.log('서버 연결 실패:', connectionStatus.message);
|
||||
|
||||
// 프록시 설정 확인 및 추천
|
||||
const usingProxy = isCorsProxyEnabled();
|
||||
const proxyType = getProxyType();
|
||||
let errorMessage = connectionStatus.message;
|
||||
|
||||
if (!usingProxy) {
|
||||
errorMessage = `${errorMessage} (설정에서 Cloudflare CORS 프록시 활성화를 권장합니다)`;
|
||||
} else if (proxyType !== 'cloudflare') {
|
||||
errorMessage = `${errorMessage} (설정에서 Cloudflare CORS 프록시로 변경을 권장합니다)`;
|
||||
}
|
||||
|
||||
showAuthToast('서버 연결 실패', errorMessage, 'destructive');
|
||||
return {
|
||||
error: { message: `서버 연결에 실패했습니다: ${errorMessage}` },
|
||||
user: null
|
||||
};
|
||||
}
|
||||
|
||||
console.log('로그인 시도 중:', email);
|
||||
|
||||
// 직접 API 호출 방식 시도
|
||||
// 기본 Supabase 인증 방식 시도
|
||||
try {
|
||||
return await signInWithDirectApi(email, password);
|
||||
} catch (directApiError: any) {
|
||||
console.error('직접 API 호출 방식 실패:', directApiError);
|
||||
const { data, error } = await supabase.auth.signInWithPassword({
|
||||
email,
|
||||
password
|
||||
});
|
||||
|
||||
// 기본 Supabase 인증 방식 시도
|
||||
try {
|
||||
const { data, error } = await supabase.auth.signInWithPassword({
|
||||
email,
|
||||
password
|
||||
});
|
||||
if (!error && data.user) {
|
||||
showAuthToast('로그인 성공', '환영합니다!');
|
||||
return { error: null, user: data.user };
|
||||
} else if (error) {
|
||||
console.error('Supabase 기본 로그인 오류:', error.message);
|
||||
|
||||
if (!error && data.user) {
|
||||
showAuthToast('로그인 성공', '환영합니다!');
|
||||
return { error: null, user: data.user };
|
||||
} else if (error) {
|
||||
console.error('Supabase 기본 로그인 오류:', error.message);
|
||||
|
||||
let errorMessage = error.message;
|
||||
if (error.message.includes('Invalid login credentials')) {
|
||||
errorMessage = '이메일 또는 비밀번호가 올바르지 않습니다.';
|
||||
} else if (error.message.includes('Email not confirmed')) {
|
||||
errorMessage = '이메일 인증이 완료되지 않았습니다. 이메일을 확인해주세요.';
|
||||
}
|
||||
|
||||
showAuthToast('로그인 실패', errorMessage, 'destructive');
|
||||
return { error: { message: errorMessage }, user: null };
|
||||
let errorMessage = error.message;
|
||||
if (error.message.includes('Invalid login credentials')) {
|
||||
errorMessage = '이메일 또는 비밀번호가 올바르지 않습니다.';
|
||||
} else if (error.message.includes('Email not confirmed')) {
|
||||
errorMessage = '이메일 인증이 완료되지 않았습니다. 이메일을 확인해주세요.';
|
||||
}
|
||||
} catch (basicAuthError: any) {
|
||||
console.warn('Supabase 기본 인증 방식 예외 발생:', basicAuthError);
|
||||
|
||||
// 오류 전파
|
||||
throw directApiError;
|
||||
showAuthToast('로그인 실패', errorMessage, 'destructive');
|
||||
return { error: { message: errorMessage }, user: null };
|
||||
}
|
||||
} catch (basicAuthError: any) {
|
||||
console.warn('Supabase 기본 인증 방식 예외 발생:', basicAuthError);
|
||||
throw basicAuthError;
|
||||
}
|
||||
|
||||
// 여기까지 왔다면 모든 로그인 시도가 실패한 것
|
||||
|
||||
Reference in New Issue
Block a user