fix(admin): RLS 재귀 수정 + OAuth 쿠키 + 코드 정리

- RLS: profiles 재귀 참조 → app_metadata 기반으로 교체
- auth callback: 쿠키를 response에 직접 설정 (세션 유지)
- middleware: Supabase 세션 갱신 추가
- layout: requireAdmin() 사용으로 통합 (중복 제거)
- admin-guard: app_metadata.role 기반 (JWT, DB 쿼리 불필요)
- debug 라우트 제거
- config.toml: localhost:3000/3001 redirect URL 추가
This commit is contained in:
윤찬 2026-04-12 20:52:56 +09:00
parent 46673ee941
commit eb4c504fea
7 changed files with 142 additions and 53 deletions

31
package-lock.json generated
View file

@ -11,6 +11,7 @@
"workspaces": [
"apps/desktop",
"apps/web",
"apps/admin",
"packages/*"
],
"devDependencies": {
@ -22,6 +23,31 @@
"typescript": "^5.7.0"
}
},
"apps/admin": {
"name": "@d3ro/admin",
"version": "1.0.0",
"dependencies": {
"@d3ro/api-client": "*",
"@d3ro/core": "*",
"@d3ro/ui": "*",
"@emotion/cache": "^11.14.0",
"@emotion/react": "^11.14.0",
"@emotion/styled": "^11.14.0",
"@mui/icons-material": "^7.0.0",
"@mui/material": "^7.0.0",
"@mui/material-nextjs": "^7.0.0",
"@supabase/ssr": "^0.10.0",
"@supabase/supabase-js": "^2.103.0",
"next": "^15.0.0",
"react": "^19.0.0",
"react-dom": "^19.0.0"
},
"devDependencies": {
"@types/node": "^22.13.0",
"@types/react": "^19.0.0",
"@types/react-dom": "^19.0.0"
}
},
"apps/desktop": {
"name": "@d3ro/desktop",
"version": "1.0.0",
@ -48,7 +74,6 @@
"electron-log": "^5.2.0",
"electron-store": "^10.0.0",
"fluent-ffmpeg": "^2.1.3",
"nanoid": "^5.1.7",
"node-record-lpcm16": "^1.0.1",
"pdf-parse": "^2.4.5",
"react": "^19.0.0",
@ -688,6 +713,10 @@
"integrity": "sha512-lB59uJoaGIfOOL9knQqQRfhl9g7x8/wqFkp13zTdkRu1huG9kg6IJs1O8hqj9rs6h7orGxHJUKb+mX3rPbWGhA==",
"license": "Apache-2.0"
},
"node_modules/@d3ro/admin": {
"resolved": "apps/admin",
"link": true
},
"node_modules/@d3ro/api-client": {
"resolved": "packages/api-client",
"link": true