例如:要将一个中间件应用于多个路由,我们可以使用:
export class UserModule {
public configure(consumer: MiddlewaresConsumer) {
consumer.apply(AuthMiddleware).forRoutes(
{ path: '/users', method: RequestMethod.GET },
{ path: '/users/:id', method: RequestMethod.GET },
{ path: '/users/:id', method: RequestMethod.PUT },
{ path: '/users/:id', method: RequestMethod.DELETE },
);
}
}
Run Code Online (Sandbox Code Playgroud)
我想将AuthGuard应用于多条路线,¿ 最佳实践是什么?谢谢 ...
目前我在这样的控制器功能中使用了一个一个的装饰器,
@Get()
@UseGuards(AuthGuard('jwt'))
async findAll(@Request() request): Promise<User[]> {
return await this.usersService.findAll();
}
Run Code Online (Sandbox Code Playgroud)
但我正在寻找一个大规模的实施
Vla*_*kov 12
您有三种可能的解决方案来设置警卫:
适用于控制器:
@Controller('cats')
@UseGuards(RolesGuard)
export class CatsController {}
Run Code Online (Sandbox Code Playgroud)
全局应用保护:
const app = await NestFactory.create(ApplicationModule);
app.useGlobalGuards(new RolesGuard());
Run Code Online (Sandbox Code Playgroud)
守卫文档中的所有示例 - https://docs.nestjs.com/guards
归档时间: |
|
查看次数: |
3483 次 |
最近记录: |