diff --git a/src/components/auth/SupabaseConnectionStatus.tsx b/src/components/auth/SupabaseConnectionStatus.tsx index 6921395..0b4942e 100644 --- a/src/components/auth/SupabaseConnectionStatus.tsx +++ b/src/components/auth/SupabaseConnectionStatus.tsx @@ -2,18 +2,10 @@ import React from "react"; import { Link } from "react-router-dom"; import { ArrowRight, Shield } from "lucide-react"; +import { TestResults } from "@/lib/supabase/tests/types"; interface TestResultProps { - testResults: { - url?: string; - usingProxy?: boolean; - proxyUrl?: string; - client?: boolean; - restApi?: boolean; - auth?: boolean; - database?: boolean; - errors: string[]; - } | null; + testResults: TestResults | null; } const SupabaseConnectionStatus: React.FC = ({ testResults }) => { diff --git a/src/components/auth/TestConnectionSection.tsx b/src/components/auth/TestConnectionSection.tsx index f34735f..01e33a7 100644 --- a/src/components/auth/TestConnectionSection.tsx +++ b/src/components/auth/TestConnectionSection.tsx @@ -3,10 +3,11 @@ import React, { useState } from "react"; import { RefreshCw } from "lucide-react"; import { testSupabaseConnection } from "@/lib/supabase"; import { useToast } from "@/hooks/useToast.wrapper"; +import { TestResults } from "@/lib/supabase/tests/types"; interface TestConnectionSectionProps { setLoginError: (error: string | null) => void; - setTestResults: (results: any) => void; + setTestResults: (results: TestResults) => void; } const TestConnectionSection: React.FC = ({ diff --git a/src/components/supabase/SupabaseConnectionTest.tsx b/src/components/supabase/SupabaseConnectionTest.tsx index 08d644a..41626ff 100644 --- a/src/components/supabase/SupabaseConnectionTest.tsx +++ b/src/components/supabase/SupabaseConnectionTest.tsx @@ -1,4 +1,3 @@ - import React, { useState } from 'react'; import { Button } from "@/components/ui/button"; import { RefreshCw, Info, HelpCircle, AlertCircle } from "lucide-react"; @@ -6,22 +5,10 @@ import { toast } from "@/hooks/useToast.wrapper"; import { testSupabaseConnection } from '@/lib/supabase'; import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@/components/ui/collapsible"; import { Alert, AlertTitle, AlertDescription } from "@/components/ui/alert"; - -interface TestResult { - url: string; - proxyUrl: string; - usingProxy: boolean; - proxyType?: string; - client: boolean; - restApi: boolean; - auth: boolean; - database: boolean; - errors: string[]; - debugInfo?: any; -} +import { TestResults } from '@/lib/supabase/tests/types'; const SupabaseConnectionTest: React.FC = () => { - const [testResults, setTestResults] = useState(null); + const [testResults, setTestResults] = useState(null); const [isTesting, setIsTesting] = useState(false); const [showDebug, setShowDebug] = useState(false); diff --git a/src/lib/supabase/tests/index.ts b/src/lib/supabase/tests/index.ts index 71f54fc..3243415 100644 --- a/src/lib/supabase/tests/index.ts +++ b/src/lib/supabase/tests/index.ts @@ -10,6 +10,7 @@ export const testSupabaseConnection = async (): Promise => { // 기본 결과 객체 초기화 const results: TestResults = { url: getSupabaseUrl(), + proxyUrl: '', // 빈 문자열로 초기화 usingProxy: isCorsProxyEnabled(), proxyType: getProxyType(), client: true, @@ -27,6 +28,22 @@ export const testSupabaseConnection = async (): Promise => { return results; } + // CORS 프록시 URL 설정 + if (results.usingProxy) { + const baseUrl = getSupabaseUrl(); + const proxyType = getProxyType(); + + if (proxyType === 'corsproxy.io') { + results.proxyUrl = `https://corsproxy.io/?${encodeURIComponent(baseUrl)}`; + } else if (proxyType === 'cors-anywhere') { + results.proxyUrl = `https://cors-anywhere.herokuapp.com/${baseUrl}`; + } else { + results.proxyUrl = baseUrl; // 기본값 + } + } else { + results.proxyUrl = results.url; // 프록시 사용 안 함 + } + // 테스트 실행 const authResults = await testAuth(supabase, results.url); const apiResults = await testRestApi(supabase); diff --git a/src/lib/supabase/tests/types.ts b/src/lib/supabase/tests/types.ts index a04c5e2..d549d0f 100644 --- a/src/lib/supabase/tests/types.ts +++ b/src/lib/supabase/tests/types.ts @@ -8,6 +8,7 @@ export interface TestResult { export interface TestResults { url: string; + proxyUrl: string; // 추가된 필드 usingProxy: boolean; proxyType: string; client: boolean;