Update default API URL

Update the default Supabase API URL to http://a11.ism.kr.
This commit is contained in:
gpt-engineer-app[bot]
2025-03-15 15:20:26 +00:00
parent 0f07edaa98
commit 9e7cd1f074
3 changed files with 39 additions and 5 deletions

View File

@@ -16,7 +16,12 @@ export const signInWithDirectApi = async (email: string, password: string) => {
? supabaseUrl ? supabaseUrl
: `${supabaseUrl}/auth/v1`; : `${supabaseUrl}/auth/v1`;
const tokenUrl = `${baseUrl}/token?grant_type=password`; // URL에 중복 '/auth/v1' 경로가 있는지 확인하고 수정
const normalizedUrl = baseUrl.includes('/auth/v1/auth/v1')
? baseUrl.replace('/auth/v1/auth/v1', '/auth/v1')
: baseUrl;
const tokenUrl = `${normalizedUrl}/token?grant_type=password`;
const headers = { const headers = {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'Authorization': `Bearer ${supabase.supabaseKey}`, 'Authorization': `Bearer ${supabase.supabaseKey}`,
@@ -48,7 +53,7 @@ export const signInWithDirectApi = async (email: string, password: string) => {
console.warn('API 경로를 찾을 수 없음 (404). 새 엔드포인트 시도 중...'); console.warn('API 경로를 찾을 수 없음 (404). 새 엔드포인트 시도 중...');
// 대체 엔드포인트 시도 (/token 대신 /signin) // 대체 엔드포인트 시도 (/token 대신 /signin)
const signinUrl = `${baseUrl}/signin`; const signinUrl = `${normalizedUrl}/signin`;
try { try {
const signinResponse = await fetch(signinUrl, { const signinResponse = await fetch(signinUrl, {

View File

@@ -17,15 +17,20 @@ export const signUpWithDirectApi = async (email: string, password: string, usern
? supabaseUrl ? supabaseUrl
: `${supabaseUrl}/auth/v1`; : `${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 = `${baseUrl}/signup`; const signUpUrl = `${normalizedUrl}/signup`;
const headers = { const headers = {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
'apikey': supabaseKey, 'apikey': supabaseKey,
'X-Client-Info': 'supabase-js/2.x' 'X-Client-Info': 'supabase-js/2.x'
}; };
console.log('회원가입 API 요청:', signUpUrl); console.log('회원가입 API 요청 URL:', signUpUrl);
// 회원가입 요청 전송 // 회원가입 요청 전송
const response = await fetch(signUpUrl, { const response = await fetch(signUpUrl, {

View File

@@ -3,11 +3,35 @@
* 서버 URL 검증 * 서버 URL 검증
*/ */
export const validateServerUrl = (url: string): boolean => { export const validateServerUrl = (url: string): boolean => {
if (!url || url.trim() === '') {
return false;
}
try { try {
// URL에 프로토콜이 없는 경우 http:// 추가
const urlWithProtocol = url.match(/^https?:\/\//) ? url : `http://${url}`;
// URL 유효성 검사 // URL 유효성 검사
new URL(url); new URL(urlWithProtocol);
return true; return true;
} catch (e) { } catch (e) {
return false; return false;
} }
}; };
/**
* API 경로 정규화 함수
*/
export const normalizeApiPath = (baseUrl: string, path: string): string => {
// 마지막 슬래시 제거
const normalizedBase = baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl;
// 앞 슬래시 추가
const normalizedPath = path.startsWith('/') ? path : `/${path}`;
// 이미 경로가 포함되어 있는지 확인하고 중복 방지
if (normalizedBase.endsWith(normalizedPath)) {
return normalizedBase;
}
return `${normalizedBase}${normalizedPath}`;
};