Boundary map

민감한 값은 서버에, 로그인 상태 표시는 클라이언트 경계에 둔다

Auth.js 설정에서 가장 중요한 구분은 “인증을 검증하는 위치”와 “상태를 보여 주는 위치”다.

서버 전용

  • `NEXTAUTH_SECRET`, provider secret
  • route handler, callbacks, DB adapter
  • 보호 페이지의 권한 확인

클라이언트 경계

  • `SessionProvider`
  • `useSession`으로 로그인 상태 표시
  • `signIn`, `signOut` 액션 버튼

공유되는 계약

  • session에 노출할 user id, role
  • 로그인 후 redirect 경로
  • 에러와 fallback UI

흔한 실패

  • provider callback URL 불일치
  • refresh token을 client session에 노출
  • 서버 컴포넌트에서 클라이언트 훅 사용
경계가 명확하면 로그인 흐름, 권한 검사, UI 표시가 같은 세션 상태를 보게 된다.