F1 Portal — 2026년 3월 13일
14 files+2033-20
# F1 Portal 관리자 인증 시스템 구축 완료
F1 Portal에 본격적인 관리자 인증 체계를 도입했습니다. 기존에 없던 관리자 전용 대시보드와 로그인 페이지를 새로 구축했으며, Google OAuth를 활용한 안전한 인증 방식을 적용했습니다. 특히 Next.js 16과의 호환성을 맞추기 위해 `NextResponse.cookies.set`을 사용하고, 관리자 쿠키를 `ADMIN_COOKIE_SECRET`과 비교하는 방식으로 보안을 강화했습니다. 이번 작업은 단순히 로그인 기능을 추가한 것이 아니라, 미들웨어를 통한 라우트 보호와 정기 실행 작업(Cron)의 보안 검증까지 포함하는 체계적인 접근이었습니다.
개발 과정에서 여러 차례의 디버깅과 반복적인 개선이 이루어졌습니다. 초기에는 Google 로그인 에러 메시지가 명확하지 않아 실제 문제 파악이 어려웠지만, try/catch 블록을 추가하고 구체적인 에러 메시지를 노출하면서 문제 해결 속도가 크게 향상되었습니다. 또한 하드코딩된 관리자 검증 로직을 환경 변수 기반으로 리팩토링하면서 보안성도 함께 개선했습니다.
이번 작업의 흥미로운 점은 사용자 인증과 관리자 권한 관리의 영역을 명확히 분리하면서도, 두 시스템이 자연스럽게 통합되도록 설계했다는 것입니다. 대시보드에서 Google 계정 섹션을 제공함으로써 사용자가 자신의 인증 상태를 한눈에 파악할 수 있게 되었고, 향후 더 다양한 관리 기능을 추가할 수 있는 확장 가능한 기반이 마련되었습니다.
커밋 기록
debug: show specific Google login error message
14:57feat: add Google login to admin page and Google account section in dashboard
14:49fix: compare admin cookie with ADMIN_COOKIE_SECRET (not hardcoded string)
14:41feat: add admin login page and dashboard UI
14:37debug: add try/catch to admin login to expose error
14:28fix: use NextResponse.cookies.set for admin login (Next.js 16 compat)
14:25security: add admin auth, middleware, cron security-qa
14:17