Investigate login/register 404 errors

Investigate and address persistent 404 errors occurring during login and registration processes.
This commit is contained in:
gpt-engineer-app[bot]
2025-03-15 15:01:48 +00:00
parent a32eb26105
commit e52ca26cef
7 changed files with 223 additions and 75 deletions

View File

@@ -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 || ''
});
// 사용자 정보 가져오기