JWT Lifecycle

JWT 인증 흐름

JwtModule, JwtStrategy, Passport guard를 조합할 때 access token과 refresh token의 보관 위치와 폐기 기준을 먼저 정합니다.

Issue

토큰 발급

AuthService.login은 user id, username, roles처럼 필요한 claim만 payload에 담아 access token을 서명합니다.

Verify

요청 검증

JwtStrategy.validate는 Authorization Bearer 토큰을 검증하고 request.user에 최소 사용자 정보를 넣습니다.

Protect

라우트 보호

@UseGuards(AuthGuard('jwt'))로 controller 단위와 handler 단위의 공개 범위를 분리합니다.

Rotate

재발급 정책

refresh token은 hash로 저장하고 rotation, reuse detection, logout 삭제 규칙을 둡니다.