토큰 발급
AuthService.login은 user id, username, roles처럼 필요한 claim만 payload에 담아 access token을 서명합니다.
JWT Lifecycle
JwtModule, JwtStrategy, Passport guard를 조합할 때 access token과 refresh token의 보관 위치와 폐기 기준을 먼저 정합니다.
AuthService.login은 user id, username, roles처럼 필요한 claim만 payload에 담아 access token을 서명합니다.
JwtStrategy.validate는 Authorization Bearer 토큰을 검증하고 request.user에 최소 사용자 정보를 넣습니다.
@UseGuards(AuthGuard('jwt'))로 controller 단위와 handler 단위의 공개 범위를 분리합니다.
refresh token은 hash로 저장하고 rotation, reuse detection, logout 삭제 규칙을 둡니다.