Improve sign-in API handling

Improve sign-in API handling to ensure successful login.
This commit is contained in:
gpt-engineer-app[bot]
2025-03-15 15:33:30 +00:00
parent 44b4e456dd
commit 03fcc7175c
3 changed files with 22 additions and 33 deletions

View File

@@ -9,31 +9,25 @@ export const signInWithDirectApi = async (email: string, password: string) => {
console.log('직접 API 호출로 로그인 시도');
try {
// 로그인 API 엔드포인트 URL과 헤더 준비
const supabaseUrl = supabase.auth.url;
// URL 경로 중복 방지를 위해 경로 확인 및 정규화
const baseUrl = supabaseUrl?.endsWith('/auth/v1')
? supabaseUrl
: `${supabaseUrl}/auth/v1`;
// 로그인 API 엔드포인트 URL 준비
const supabaseUrl = localStorage.getItem('supabase_url') || 'http://a11.ism.kr';
const supabaseKey = localStorage.getItem('supabase_key') || supabase.supabaseKey;
// URL에 중복 '/auth/v1' 경로가 있는지 확인하고 수정
const normalizedUrl = baseUrl.includes('/auth/v1/auth/v1')
? baseUrl.replace('/auth/v1/auth/v1', '/auth/v1')
: baseUrl;
// URL에 auth/v1이 이미 포함되어있는지 확인
const baseUrl = supabaseUrl.includes('/auth/v1') ? supabaseUrl : `${supabaseUrl}/auth/v1`;
const tokenUrl = `${normalizedUrl}/token?grant_type=password`;
const headers = {
'Content-Type': 'application/json',
'Authorization': `Bearer ${supabase.supabaseKey}`,
'X-Client-Info': 'supabase-js/2.x'
};
// 토큰 엔드포인트 경로
const tokenUrl = `${baseUrl}/token?grant_type=password`;
console.log('로그인 API 요청 URL:', tokenUrl);
// 로그인 요청 보내기
const response = await fetch(tokenUrl, {
method: 'POST',
headers,
headers: {
'Content-Type': 'application/json',
'apikey': supabaseKey
},
body: JSON.stringify({ email, password })
});
@@ -53,12 +47,15 @@ export const signInWithDirectApi = async (email: string, password: string) => {
console.warn('API 경로를 찾을 수 없음 (404). 새 엔드포인트 시도 중...');
// 대체 엔드포인트 시도 (/token 대신 /signin)
const signinUrl = `${normalizedUrl}/signin`;
const signinUrl = `${baseUrl}/signin`;
try {
const signinResponse = await fetch(signinUrl, {
method: 'POST',
headers,
headers: {
'Content-Type': 'application/json',
'apikey': supabaseKey
},
body: JSON.stringify({ email, password })
});

View File

@@ -9,25 +9,17 @@ export const signUpWithDirectApi = async (email: string, password: string, usern
try {
console.log('직접 API 호출로 회원가입 시도 중');
const supabaseUrl = supabase.auth.url;
const supabaseUrl = localStorage.getItem('supabase_url') || 'http://a11.ism.kr';
const supabaseKey = localStorage.getItem('supabase_key') || supabase.supabaseKey;
// URL 경로 중복 방지를 위해 경로 확인 및 정규화
const baseUrl = supabaseUrl?.endsWith('/auth/v1')
? supabaseUrl
: `${supabaseUrl}/auth/v1`;
// URL에 중복 '/auth/v1' 경로가 있는지 확인하고 수정
const normalizedUrl = baseUrl.includes('/auth/v1/auth/v1')
? baseUrl.replace('/auth/v1/auth/v1', '/auth/v1')
: baseUrl;
// URL에 auth/v1이 이미 포함되어있는지 확인
const baseUrl = supabaseUrl.includes('/auth/v1') ? supabaseUrl : `${supabaseUrl}/auth/v1`;
// 회원가입 API 엔드포인트 및 헤더 설정
const signUpUrl = `${normalizedUrl}/signup`;
const signUpUrl = `${baseUrl}/signup`;
const headers = {
'Content-Type': 'application/json',
'apikey': supabaseKey,
'X-Client-Info': 'supabase-js/2.x'
'apikey': supabaseKey
};
console.log('회원가입 API 요청 URL:', signUpUrl);

View File

@@ -50,7 +50,7 @@ export const getSupabaseUrl = () => {
}
// 기본값 사용 (환경 변수 대신)
return 'http://a11.ism.kr:8000';
return 'http://a11.ism.kr';
};
export const getSupabaseKey = () => {