TS · NEST AUTHZ
JWT 이후 RolesGuard 인가 흐름
역할 기반 인가는 JWT로 신원을 확인한 뒤, 라우트에 붙은 Roles 메타데이터와 req.user의 role을 비교해 접근을 결정합니다.
Guard 처리 순서
roles
@Roles
핸들러에 필요한 역할 메타데이터를 붙입니다.
JwtAuthGuard
토큰을 검증하고 req.user를 채웁니다.
Reflector
핸들러와 클래스의 roles 메타데이터를 읽습니다.
RolesGuard
req.user.role이 허용 목록에 있는지 비교합니다.
allow/deny
통과하면 핸들러 실행, 아니면 403을 반환합니다.
메타데이터
→
JWT
→
roles 읽기
→
비교
→
응답
검토 기준
guard
순서 보장
인증 guard가 먼저 실행되도록 데코레이터 구성을 맞춥니다.
기본 정책
@Roles가 없을 때 허용할지 차단할지 정합니다.
다중 역할
admin, manager처럼 배열 비교를 지원합니다.
감사 로그
거부된 접근은 운영 추적을 위해 남기는 것이 좋습니다.