
Autorização e RBAC
Controle de acesso baseado em roles, guards personalizados, decorators, permissões, propriedade de recursos
1O que é RBAC (Role-Based Access Control)?
O que é RBAC (Role-Based Access Control)?
Resposta
RBAC é um sistema de controle de acesso que concede permissões aos usuários com base em seus roles. Em vez de gerenciar as permissões individualmente para cada usuário, o RBAC agrupa as permissões em roles (ex: ADMIN, USER, MANAGER) e atribui esses roles aos usuários. Isso simplifica o gerenciamento de acessos nas aplicações, especialmente útil no NestJS com guards personalizados e decorators de metadados.
2Qual é a diferença entre autenticação e autorização?
Qual é a diferença entre autenticação e autorização?
Resposta
A autenticação verifica a identidade do usuário (quem é você?), geralmente via login/senha ou token JWT. A autorização verifica as permissões do usuário (o que você pode fazer?), controlando o acesso aos recursos com base nos roles ou permissões. No NestJS, a autenticação costuma usar um JwtAuthGuard, enquanto a autorização usa guards personalizados como RolesGuard para verificar os direitos de acesso.
3Qual decorator NestJS permite criar um guard personalizado?
Qual decorator NestJS permite criar um guard personalizado?
Resposta
Para criar um guard personalizado no NestJS, é preciso criar uma classe decorada com @Injectable() que implementa a interface CanActivate. Essa interface exige o método canActivate(context: ExecutionContext) que retorna um boolean ou uma Promise. O guard pode então ser aplicado às rotas com @UseGuards(). Essa arquitetura permite injetar dependências (services, repositories) no guard para realizar validações complexas.
No RBAC, o que representa uma 'permissão'?
Como vincular um guard a um controller no NestJS?
+17 perguntas de entrevista
Outros temas de entrevista Node.js / NestJS
Fundamentos do Node.js
APIs Core do Node.js
Programação assíncrona
Fundamentos do Express.js
Fundamentos do NestJS
Design de API REST
Validação e DTO
Documentação de API e contratos
Tratamento de erros
Testes unitários
Agendamento de tarefas
Módulos e DI do NestJS
Configuração e gerenciamento de ambientes
Autenticação JWT
Banco de dados com TypeORM
Prisma ORM
Middleware e Interceptors
Upload de arquivos
WebSockets
GraphQL com NestJS
Testes end-to-end
Cache com Redis
Filas com Bull
DevOps, Logging e CI/CD
Docker e Conteinerização
Microservices
Melhores práticas de segurança
Desempenho e implantação na nuvem
Domine Node.js / NestJS para sua proxima entrevista
Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.
Comece gratis