NestJS
NestJS 守卫 (Guards) 与权限控制:JWT 鉴权、Passport 与 RBAC 角色系统
Waitwalker2026-08-2315 min
## 1. RolesGuard 角色守卫实现
```typescript
@Injectable()
export class RolesGuard implements CanActivate {
constructor(private reflector: Reflector) {}
canActivate(context: ExecutionContext): boolean {
const requiredRoles = this.reflector.getAllAndOverride<Role[]>(ROLES_KEY, [
context.getHandler(),
context.getClass(),
]);
if (!requiredRoles) return true;
const { user } = context.switchToHttp().getRequest();
return requiredRoles.some((role) => user.roles?.includes(role));
}
}
```
#NestJS#Guards#JWT#RBAC#安全
回到文章列表 →