RolesGuard는 인증된 사용자와 라우트 역할을 비교한다

JwtAuthGuard가 req.user를 채운 뒤 RolesGuard가 @Roles metadata를 읽어 허용 여부를 결정한다.

1
@Roles()
handler/class에 필요한 role 목록을 붙임
2
JwtAuthGuard
토큰 검증 후 req.user를 세팅
3
Reflector
라우트 metadata에서 roles를 읽음
4
Compare
req.user.role이 허용 목록에 있는지 비교
5
Allow / 403
일치하면 handler, 아니면 Forbidden
점검기준
순서인증 Guard가 먼저 실행되어야 인가가 가능
실패 지점req.user 없음, metadata 누락, role 문자열 불일치
판단Guard 순서와 metadata 이름을 함께 점검

핵심 인가 오류는 role 비교보다 앞선 인증 Guard 순서에서 생기는 경우가 많다.