민감한 값은 서버에, 로그인 상태 표시는 클라이언트 경계에 둔다
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 표시가 같은 세션 상태를 보게 된다.