RolesGuard는 인증된 사용자와 라우트 역할을 비교한다
JwtAuthGuard가 req.user를 채운 뒤 RolesGuard가 @Roles metadata를 읽어 허용 여부를 결정한다.
@Roles()
handler/class에 필요한 role 목록을 붙임
JwtAuthGuard
토큰 검증 후 req.user를 세팅
Reflector
라우트 metadata에서 roles를 읽음
Compare
req.user.role이 허용 목록에 있는지 비교
Allow / 403
일치하면 handler, 아니면 Forbidden
| 점검 | 기준 |
|---|---|
| 순서 | 인증 Guard가 먼저 실행되어야 인가가 가능 |
| 실패 지점 | req.user 없음, metadata 누락, role 문자열 불일치 |
| 판단 | Guard 순서와 metadata 이름을 함께 점검 |
핵심 인가 오류는 role 비교보다 앞선 인증 Guard 순서에서 생기는 경우가 많다.