NESTJS Gateway / Websocket - как отправить jwt access_token через socket.emit - PullRequest
0 голосов
/ 02 ноября 2019

Я использую паспорт по умолчанию jwt AuthGuard для моего проекта. Это хорошо работает для моей публикации и получения маршрутов при настройке заголовка аутентификации.

Теперь я хочу использовать Nestjs Gateways также с socket.io на стороне клиента, но я не знаю, как отправить access_token нашлюз?

Это в основном мой шлюз:

@WebSocketGateway()
export class UserGateway {

  entityManager = getManager();

  @UseGuards(AuthGuard('jwt'))
  @SubscribeMessage('getUserList')
  async handleMessage(client: any, payload: any) {
    const results = await this.entityManager.find(UserEntity);
    console.log(results);
    return this.entityToClientUser(results);
  }

А на клиенте я отправляю так:

   this.socket.emit('getUserList', users => {
          console.log(users);
          this.userListSub.next(users);
        });

Как и куда мне добавить jwt access_token? Документация nestjs полностью пропускает этот пункт для Websockets. Все, что они говорят, это то, что охранники работают точно так же для веб-сокетов, как и для отправки / получения и т. Д. См. здесь

...