Я использую паспорт по умолчанию 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. Все, что они говорят, это то, что охранники работают точно так же для веб-сокетов, как и для отправки / получения и т. Д. См. здесь