Идентификация пользователя при WebSocket подключении через SignalR C#

Всем привет! Есть такая проблема. Есть сервис, который занимается отправкой real-time уведомлений. Когда пользователь подключается к нему, то подключение идентифицируется по ConnectionId, которое создаётся при подключении. Но только по этому Id невозможно идентифицировать пользователя. В системе используются JWT токены, в которых содержится Id пользователя, но как его передать при WebSocket подключении? Есть вариант передать в query string, но это небезопасно


Ответы (1 шт):

Автор решения: Stalin

Я не понимаю в чем проблема то: подключаешь вебсокет в handshake, подключился? Пишешь сообщение клиенту типа: { "type": "auth", "token": "blah-blah-blah" }. Сервер проверяет JWT и сохраняет привязку ConnectionId <-> UserId. До получения валидного токена сервер игнорирует или отклоняет остальные сообщения.

Сразу говорю, я незнаю, я может не прав и это не секьюрно, но кажется изи и норм?

→ Ссылка