인증은 provider보다 세션 위치, 보호 경계, 서버 접근 방식을 먼저 정한다
로그인 버튼만 붙이는 문제가 아니다. 서버 컴포넌트에서 세션을 읽을지, 미들웨어에서 막을지, API에서 권한을 다시 확인할지까지 설계한다.
| 결정 항목 | Auth.js에서 보는 것 | Next.js 연결 지점 | 주의할 점 |
|---|---|---|---|
| 로그인 방식 | OAuth provider, credentials | route handler, callback route | provider별 callback URL과 환경 변수 정합성 |
| 세션 전략 | JWT 또는 database session | Server Component, API | 쿠키 크기, 만료, 서버 조회 비용 |
| 페이지 보호 | authorized callback | middleware.ts matcher | 정적 자산과 공개 페이지를 잘못 막지 않기 |
| 서버 데이터 접근 | getServerSession/auth helper | Server Action, Route Handler | 클라이언트 세션만 믿고 서버 권한을 생략하지 않기 |
| 운영 추적 | signIn/error event | logger, monitoring | 인증 실패 이유와 개인정보 노출을 분리 |