diff --git a/src/lib/supabase.ts b/src/lib/supabase.ts index d4e54e6..22e2921 100644 --- a/src/lib/supabase.ts +++ b/src/lib/supabase.ts @@ -1,8 +1,45 @@ import { createClient } from '@supabase/supabase-js'; -// Supabase URL과 anon key는 실제 프로젝트 값으로 대체해야 합니다 -const supabaseUrl = 'YOUR_SUPABASE_URL'; -const supabaseAnonKey = 'YOUR_SUPABASE_ANON_KEY'; +// Supabase 온프레미스 URL과 anon key 설정 +const supabaseUrl = import.meta.env.VITE_SUPABASE_URL || 'YOUR_SUPABASE_URL'; +const supabaseAnonKey = import.meta.env.VITE_SUPABASE_ANON_KEY || 'YOUR_SUPABASE_ANON_KEY'; -export const supabase = createClient(supabaseUrl, supabaseAnonKey); +// 유효한 URL이 설정되었는지 확인 (기본값을 그대로 사용 중인지 체크) +const isValidUrl = supabaseUrl !== 'YOUR_SUPABASE_URL' && + supabaseAnonKey !== 'YOUR_SUPABASE_ANON_KEY'; + +let supabaseClient; + +try { + // Supabase 클라이언트 생성 + supabaseClient = createClient(supabaseUrl, supabaseAnonKey, { + auth: { + autoRefreshToken: true, + persistSession: true, + }, + }); + + // Supabase 연결 확인 + if (!isValidUrl) { + console.warn('Supabase URL이나 Anon Key가 설정되지 않았습니다. 온프레미스 설정을 확인해주세요.'); + } +} catch (error) { + console.error('Supabase 클라이언트 생성 오류:', error); + + // 더미 클라이언트 생성 (앱이 완전히 실패하지 않도록) + supabaseClient = { + auth: { + getUser: () => Promise.resolve({ data: { user: null } }), + signInWithPassword: () => Promise.reject(new Error('Supabase 설정이 필요합니다')), + signUp: () => Promise.reject(new Error('Supabase 설정이 필요합니다')), + }, + from: () => ({ + select: () => ({ eq: () => ({ data: null, error: new Error('Supabase 설정이 필요합니다') }) }), + insert: () => ({ error: new Error('Supabase 설정이 필요합니다') }), + delete: () => ({ eq: () => ({ error: new Error('Supabase 설정이 필요합니다') }) }), + }), + }; +} + +export const supabase = supabaseClient;