我正在尝试将护照jwt策略添加到所有以/api
开头的路线。
我在文档中找不到任何示例。我不想在每个端点中添加@UseGuards
装饰器。
谢谢!
答案 0 :(得分:1)
不可能立即将警卫仅绑定到特定路由,但是有可能在警卫中添加一些逻辑以检查您是否在特定路由中(或没有)并运行逻辑(或短路)。也许像
@Injectable()
export class APIGuard implements CanActivate {
canActivate(context: ExecutionContext): boolean | Promise<boolean> | Observable<boolean> {
const req = context.switchToHttp().getRequest();
if (!req.url.contains('api')) {
return true;
}
const isValid = this.checkValidity(context);
return isValid;
}
private isvalid(context: ExecutionContext) {
// do your logic. Only brought to a separate method to keep the `canActivate` cleaner
}
}