Гнездо. js: Добавить стратегию паспорта для всех маршрутов - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь добавить стратегию паспорта jwt ко всем маршрутам, начинающимся с /api.

. Я не могу найти в документации ни одного примера этого. Я не хочу добавлять декоратор @UseGuards в каждую конечную точку.

Спасибо!

1 Ответ

1 голос
/ 26 февраля 2020

Не сразу можно привязать охранника только к определенному c маршруту, , однако можно добавить несколько логов c к охраннику, чтобы проверить, находитесь ли вы в c проложить маршрут (или нет) и запустить logi c (или короткое замыкание). Что-то вроде

@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
  }
}
...