Дополнительная аутентификация в Nest.js с помощью @ nestjs / passport - PullRequest
2 голосов
/ 16 мая 2019

У меня есть маршрут, который должен использоваться аутентифицированными и неаутентифицированными пользователями.Я использую @UseGuards(AuthGuard('jwt')), чтобы включить аутентификацию, но она не позволяет любому неаутентифицированному пользователю получить доступ к маршруту (обычный).

Как я могу позволить неаутентифицированным пользователям также получить доступ к маршруту?

Кажется, что естьнет вариантов, которые я могу передать AuthGuard, чтобы получить их в моей стратегии паспорта.

1 Ответ

2 голосов
/ 16 мая 2019

Вы можете просто создать свой собственный AuthGuard, например, расширив существующий:

export class OptionalJwtAuthGuard extends AuthGuard('jwt') {

  // Override handleRequest so it never throws an error
  handleRequest(err, user, info, context) {
    return user;
  }

}

, а затем использовать его на своих контроллерах:

@UseGuards(OptionalJwtAuthGuard)
...