feat: Clerk + Supabase 통합 시스템 구현 완료
주요 변경사항: • Clerk 인증 시스템 통합 및 설정 • Supabase 데이터베이스 스키마 설계 및 적용 • JWT 기반 Row Level Security (RLS) 정책 구현 • 기존 Appwrite 인증을 Clerk로 완전 교체 기술적 개선: • 무한 로딩 문제 해결 - Index.tsx 인증 로직 수정 • React root 마운팅 오류 수정 - main.tsx 개선 • CORS 설정 추가 - vite.config.ts 수정 • Sentry 에러 모니터링 통합 추가된 컴포넌트: • AuthGuard: 인증 보호 컴포넌트 • SignIn/SignUp: Clerk 기반 인증 UI • ClerkProvider: Clerk 설정 래퍼 • EnvTest: 개발환경 디버깅 도구 데이터베이스: • user_profiles, transactions, budgets, category_budgets 테이블 • Clerk JWT 토큰 기반 RLS 정책 • 자동 사용자 프로필 생성 및 동기화 Task Master: • Task 11.1, 11.2, 11.4 완료 • 프로젝트 관리 시스템 업데이트 Note: ESLint 정리는 별도 커밋에서 진행 예정 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
16
src/main.tsx
16
src/main.tsx
@@ -82,20 +82,21 @@ window.addEventListener("unhandledrejection", function (event) {
|
||||
logger.info("환경 변수:", {
|
||||
NODE_ENV: import.meta.env.MODE,
|
||||
BASE_URL: import.meta.env.BASE_URL,
|
||||
APPWRITE_ENDPOINT: import.meta.env.VITE_APPWRITE_ENDPOINT,
|
||||
APPWRITE_PROJECT_ID: import.meta.env.VITE_APPWRITE_PROJECT_ID,
|
||||
SUPABASE_URL: import.meta.env.VITE_SUPABASE_URL,
|
||||
CLERK_PUBLISHABLE_KEY:
|
||||
import.meta.env.VITE_CLERK_PUBLISHABLE_KEY?.substring(0, 20) + "...",
|
||||
});
|
||||
|
||||
// 상태 확인
|
||||
// TypeScript에서 window 객체에 사용자 정의 속성 추가
|
||||
declare global {
|
||||
interface Window {
|
||||
appwriteEnabled: boolean;
|
||||
supabaseEnabled: boolean;
|
||||
}
|
||||
}
|
||||
|
||||
// 기본적으로 Appwrite 비활성화
|
||||
window.appwriteEnabled = false;
|
||||
// Supabase 활성화
|
||||
window.supabaseEnabled = true;
|
||||
|
||||
try {
|
||||
const rootElement = document.getElementById("root");
|
||||
@@ -103,6 +104,11 @@ try {
|
||||
throw new Error("Root element not found");
|
||||
}
|
||||
|
||||
// 기존 React root가 있다면 제거
|
||||
if (rootElement.innerHTML.trim()) {
|
||||
rootElement.innerHTML = "";
|
||||
}
|
||||
|
||||
const root = createRoot(rootElement);
|
||||
|
||||
root.render(
|
||||
|
||||
Reference in New Issue
Block a user