Nestjs Nest.js:将passport策略添加到所有路由

Nestjs Nest.js:将passport策略添加到所有路由,nestjs,nestjs-passport,Nestjs,Nestjs Passport,我试图将passport jwt策略添加到以/api开头的所有路由中 我在文件中找不到这方面的任何例子。我不想在每个端点中添加@UseGuards装饰器 谢谢 不可能立即将保护仅绑定到特定路由,但是可以向保护添加一些逻辑,以检查您是否在特定路由中,并运行逻辑或短路。大概是 @Injectable() export class APIGuard implements CanActivate { canActivate(context: ExecutionContext): boolean |

我试图将passport 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
  }
}

我想在这个基础上添加APIGuard,在主界面的useGlobalGuards中添加APIGuard.t是的,没错。它将是一个全局保护,但保护逻辑仅在url中带有字符串api的路由上工作