Investigate login/register 404 errors
Investigate and address persistent 404 errors occurring during login and registration processes.
This commit is contained in:
@@ -10,7 +10,8 @@ export const signInWithDirectApi = async (email: string, password: string) => {
|
||||
|
||||
try {
|
||||
// 로그인 API 엔드포인트 URL과 헤더 준비
|
||||
const tokenUrl = `${supabase.auth.url}/token?grant_type=password`;
|
||||
const supabaseUrl = supabase.auth.url;
|
||||
const tokenUrl = `${supabaseUrl}/auth/v1/token?grant_type=password`;
|
||||
const headers = {
|
||||
'Content-Type': 'application/json',
|
||||
'Authorization': `Bearer ${supabase.supabaseKey}`,
|
||||
@@ -39,7 +40,50 @@ export const signInWithDirectApi = async (email: string, password: string) => {
|
||||
}
|
||||
|
||||
if (response.status === 404) {
|
||||
showAuthToast('로그인 실패', '서버 경로를 찾을 수 없습니다. Supabase URL을 확인하세요.', 'destructive');
|
||||
console.warn('API 경로를 찾을 수 없음 (404). 새 엔드포인트 시도 중...');
|
||||
|
||||
// 대체 엔드포인트 시도 (/token 대신 /signin)
|
||||
const signinUrl = `${supabaseUrl}/auth/v1/signin`;
|
||||
|
||||
try {
|
||||
const signinResponse = await fetch(signinUrl, {
|
||||
method: 'POST',
|
||||
headers,
|
||||
body: JSON.stringify({ email, password })
|
||||
});
|
||||
|
||||
console.log('대체 로그인 경로 응답 상태:', signinResponse.status);
|
||||
|
||||
if (signinResponse.status === 404) {
|
||||
showAuthToast('로그인 실패', '서버 설정을 확인하세요: 인증 API 경로를 찾을 수 없습니다.', 'destructive');
|
||||
return {
|
||||
error: { message: '서버 설정 문제: 인증 API 경로를 찾을 수 없습니다. Supabase URL을 확인하세요.' },
|
||||
user: null
|
||||
};
|
||||
}
|
||||
|
||||
// 대체 응답 처리
|
||||
const signinData = await parseResponse(signinResponse);
|
||||
if (signinData.error) {
|
||||
showAuthToast('로그인 실패', signinData.error, 'destructive');
|
||||
return { error: { message: signinData.error }, user: null };
|
||||
}
|
||||
|
||||
if (signinData.access_token) {
|
||||
await supabase.auth.setSession({
|
||||
access_token: signinData.access_token,
|
||||
refresh_token: signinData.refresh_token || ''
|
||||
});
|
||||
|
||||
const { data: userData } = await supabase.auth.getUser();
|
||||
showAuthToast('로그인 성공', '환영합니다!');
|
||||
return { error: null, user: userData.user };
|
||||
}
|
||||
} catch (altError) {
|
||||
console.error('대체 로그인 엔드포인트 오류:', altError);
|
||||
}
|
||||
|
||||
showAuthToast('로그인 실패', '서버 설정을 확인하세요: 인증 API 경로를 찾을 수 없습니다.', 'destructive');
|
||||
return {
|
||||
error: { message: '서버 경로를 찾을 수 없습니다. Supabase URL을 확인하세요.' },
|
||||
user: null
|
||||
@@ -81,7 +125,7 @@ export const signInWithDirectApi = async (email: string, password: string) => {
|
||||
// 로그인 성공 시 Supabase 세션 설정
|
||||
await supabase.auth.setSession({
|
||||
access_token: responseData.access_token,
|
||||
refresh_token: responseData.refresh_token
|
||||
refresh_token: responseData.refresh_token || ''
|
||||
});
|
||||
|
||||
// 사용자 정보 가져오기
|
||||
|
||||
Reference in New Issue
Block a user