Как в socket.io передать JWT?

Здравствуйте, решил использовать socket.io. У меня есть массив пользователей. У которых при аутентификации генерируется token. Как socke-ту передать token, когда происходит событие 'connection'? Что-бы знать к какому пользователю привязан socket.id? Раньше я делал так:
// СЕРВЕР
io.on('connection', function (socket) {
  socket.on('news', data => {
    data.socketid = socket.id;   
// КЛИЕНТ
 ngOnInit() {
    this.socket.emit('news', this.auth);
}

но это капец как не правильно, и не удобно.
  • Вопрос задан
  • 4623 просмотра
Пригласить эксперта
Ответы на вопрос 1
dasha_programmist
@dasha_programmist
ex Software Engineer at Reddit TS/React/GraphQL/Go
для websocket, например, при запросе на маршрут ws://host (запрос установления соединения/handshake)
1) передавать в заголовке Authorization: Bearer (если по стандарту oauth)
2) при авторизации выдавать куки и тогда они сами будут прокидываться при установке соединения

вот тут пример как прокидывать заголовки

или разруливать на уровне бизнес-логики:
1) хранить карту connection-id -> user и обратную
2) реализовать метод login/logout
3) в остальных методах проверять на статус авторизации при попытке обращения к ним
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы