我正在尝试将护照 jwt 策略添加到所有以/api
.
我在文档中找不到任何这样的例子。我不想@UseGuards
在每个端点中添加装饰器。
谢谢!
不可能立即将守卫仅绑定到特定路线,但是可以向守卫添加一些逻辑以检查您是否在特定路线中(或不在)并运行逻辑(或短路)。可能像
@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
}
}