Improve sign-in API handling
Improve sign-in API handling to ensure successful login.
This commit is contained in:
@@ -9,31 +9,25 @@ export const signInWithDirectApi = async (email: string, password: string) => {
|
|||||||
console.log('직접 API 호출로 로그인 시도');
|
console.log('직접 API 호출로 로그인 시도');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 로그인 API 엔드포인트 URL과 헤더 준비
|
// 로그인 API 엔드포인트 URL 준비
|
||||||
const supabaseUrl = supabase.auth.url;
|
const supabaseUrl = localStorage.getItem('supabase_url') || 'http://a11.ism.kr';
|
||||||
// URL 경로 중복 방지를 위해 경로 확인 및 정규화
|
const supabaseKey = localStorage.getItem('supabase_key') || supabase.supabaseKey;
|
||||||
const baseUrl = supabaseUrl?.endsWith('/auth/v1')
|
|
||||||
? supabaseUrl
|
|
||||||
: `${supabaseUrl}/auth/v1`;
|
|
||||||
|
|
||||||
// URL에 중복 '/auth/v1' 경로가 있는지 확인하고 수정
|
// URL에 auth/v1이 이미 포함되어있는지 확인
|
||||||
const normalizedUrl = baseUrl.includes('/auth/v1/auth/v1')
|
const baseUrl = supabaseUrl.includes('/auth/v1') ? supabaseUrl : `${supabaseUrl}/auth/v1`;
|
||||||
? baseUrl.replace('/auth/v1/auth/v1', '/auth/v1')
|
|
||||||
: baseUrl;
|
|
||||||
|
|
||||||
const tokenUrl = `${normalizedUrl}/token?grant_type=password`;
|
// 토큰 엔드포인트 경로
|
||||||
const headers = {
|
const tokenUrl = `${baseUrl}/token?grant_type=password`;
|
||||||
'Content-Type': 'application/json',
|
|
||||||
'Authorization': `Bearer ${supabase.supabaseKey}`,
|
|
||||||
'X-Client-Info': 'supabase-js/2.x'
|
|
||||||
};
|
|
||||||
|
|
||||||
console.log('로그인 API 요청 URL:', tokenUrl);
|
console.log('로그인 API 요청 URL:', tokenUrl);
|
||||||
|
|
||||||
// 로그인 요청 보내기
|
// 로그인 요청 보내기
|
||||||
const response = await fetch(tokenUrl, {
|
const response = await fetch(tokenUrl, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers,
|
headers: {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
'apikey': supabaseKey
|
||||||
|
},
|
||||||
body: JSON.stringify({ email, password })
|
body: JSON.stringify({ email, password })
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -53,12 +47,15 @@ export const signInWithDirectApi = async (email: string, password: string) => {
|
|||||||
console.warn('API 경로를 찾을 수 없음 (404). 새 엔드포인트 시도 중...');
|
console.warn('API 경로를 찾을 수 없음 (404). 새 엔드포인트 시도 중...');
|
||||||
|
|
||||||
// 대체 엔드포인트 시도 (/token 대신 /signin)
|
// 대체 엔드포인트 시도 (/token 대신 /signin)
|
||||||
const signinUrl = `${normalizedUrl}/signin`;
|
const signinUrl = `${baseUrl}/signin`;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const signinResponse = await fetch(signinUrl, {
|
const signinResponse = await fetch(signinUrl, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers,
|
headers: {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
'apikey': supabaseKey
|
||||||
|
},
|
||||||
body: JSON.stringify({ email, password })
|
body: JSON.stringify({ email, password })
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -9,25 +9,17 @@ export const signUpWithDirectApi = async (email: string, password: string, usern
|
|||||||
try {
|
try {
|
||||||
console.log('직접 API 호출로 회원가입 시도 중');
|
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;
|
const supabaseKey = localStorage.getItem('supabase_key') || supabase.supabaseKey;
|
||||||
|
|
||||||
// URL 경로 중복 방지를 위해 경로 확인 및 정규화
|
// URL에 auth/v1이 이미 포함되어있는지 확인
|
||||||
const baseUrl = supabaseUrl?.endsWith('/auth/v1')
|
const baseUrl = supabaseUrl.includes('/auth/v1') ? supabaseUrl : `${supabaseUrl}/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;
|
|
||||||
|
|
||||||
// 회원가입 API 엔드포인트 및 헤더 설정
|
// 회원가입 API 엔드포인트 및 헤더 설정
|
||||||
const signUpUrl = `${normalizedUrl}/signup`;
|
const signUpUrl = `${baseUrl}/signup`;
|
||||||
const headers = {
|
const headers = {
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
'apikey': supabaseKey,
|
'apikey': supabaseKey
|
||||||
'X-Client-Info': 'supabase-js/2.x'
|
|
||||||
};
|
};
|
||||||
|
|
||||||
console.log('회원가입 API 요청 URL:', signUpUrl);
|
console.log('회원가입 API 요청 URL:', signUpUrl);
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ export const getSupabaseUrl = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 기본값 사용 (환경 변수 대신)
|
// 기본값 사용 (환경 변수 대신)
|
||||||
return 'http://a11.ism.kr:8000';
|
return 'http://a11.ism.kr';
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getSupabaseKey = () => {
|
export const getSupabaseKey = () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user