Skip to content

fix(web): 관리자 권한 다이얼로그 복원 및 미들웨어 수정#45

Merged
bbbang105 merged 3 commits intodevfrom
fix/admin-auth-dialog-and-middleware
Mar 13, 2026
Merged

fix(web): 관리자 권한 다이얼로그 복원 및 미들웨어 수정#45
bbbang105 merged 3 commits intodevfrom
fix/admin-auth-dialog-and-middleware

Conversation

@bbbang105
Copy link
Owner

Summary

  • 미들웨어 Edge Runtime 호환성 수정 + 관리자 접근 거부 다이얼로그 복원
  • 보안 리뷰 반영: admin check API 응답 최소화, JSON 파싱 방어

Changes

파일 변경
middleware.ts 관리자 권한 체크 제거 (인증만), isAdminDiscordId import 삭제
(admin)/layout.tsx JSON.parse 에러 방어, 병렬 fetch, 로그아웃 toast 피드백
/api/admin/check/route.ts 응답에서 userId/discordId 제거 (정보 노출 방지)
CLAUDE.md 인증 구조 설명 업데이트

Design Decisions

결정 이유
미들웨어에서 관리자 체크 제거 Edge Runtime에서 shared 패키지 import 불가 (process.cwd), admin layout의 다이얼로그 UX 보존
API 응답 최소화 Security audit P1: discordId 노출 방지
JSON.parse try/catch Code review P1: 502/비정상 응답 시 잘못된 /login 리다이렉트 방지

Test Plan

  • 비관리자로 /admin 접근 → "관리자만 접근할 수 있습니다" 다이얼로그 표시
  • 관리자로 /admin 접근 → 정상 렌더링
  • 미인증 상태로 /admin 접근 → /login 리다이렉트
  • 봇 수동 실행 등 admin API 호출 정상 동작

🤖 Generated with Claude Code

- middleware에서 관리자 권한 체크 제거 (인증만 체크), Edge Runtime 호환성 확보
- admin layout에서 접근 거부 다이얼로그가 정상 표시되도록 복원
- /api/admin/check 응답에서 userId/discordId 불필요 노출 제거
- admin layout JSON 파싱 에러 방어 코드 추가
- 로그아웃 실패 시 toast 피드백 추가
- admin check + auth/me 병렬 fetch로 성능 개선

Co-Authored-By: Claude <noreply@anthropic.com>
@bbbang105 bbbang105 requested a review from choihooo as a code owner March 13, 2026 08:44
@vercel
Copy link

vercel bot commented Mar 13, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
study-admin-web Ready Ready Preview, Comment Mar 13, 2026 9:01am

- withSentryConfig에 webpack.autoInstrumentMiddleware: false 추가
- Next.js 16 + Sentry v10 환경에서 middleware.js.nft.json 누락 에러 해결

Co-Authored-By: Claude <noreply@anthropic.com>
@bbbang105 bbbang105 force-pushed the fix/admin-auth-dialog-and-middleware branch from 0f680c6 to 9f32d5b Compare March 13, 2026 08:52
Next.js 16 + Sentry withSentryConfig 조합에서 middleware.ts가 있으면
middleware.js.nft.json 생성 실패로 Vercel 배포 불가.
(Sentry가 자체 middleware proxy를 생성하는데, 사용자 middleware와 충돌)

- middleware.ts 삭제 (PR #5에서 Next.js 16 업그레이드 시 삭제한 것이 맞았음)
- (user)/layout.tsx: 미인증 시 /login 리다이렉트 추가
- (admin)/layout.tsx: 401 미인증 시 /login 리다이렉트, 비관리자 시 접근 거부 다이얼로그
- next.config.ts 원복 (Sentry 설정 정상 유지)

Co-Authored-By: Claude <noreply@anthropic.com>
@bbbang105 bbbang105 merged commit 096e1f5 into dev Mar 13, 2026
7 checks passed
@bbbang105 bbbang105 deleted the fix/admin-auth-dialog-and-middleware branch March 13, 2026 09:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🚨 fix 버그 수정 / 에러 해결

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant