Ответ 1
Протокол WebSockets позволяет обмениваться стандартными заголовками HTTP-аутентификации во время рукопожатия. Если у вас есть сервер WebSockets, который подключается к существующему веб-серверу в качестве модуля, тогда существующая аутентификация на веб-сервере должна работать. В противном случае, если у вас есть автономный сервер WebSockets, вам может потребоваться добавить поддержку аутентификации.
Обновление
Как указывает @Jon, в отличие от обычных запросов HTTP/XHR, API-интерфейс браузера не позволяет вам устанавливать произвольные заголовки "X- *" для соединений WebSocket. Единственным значением заголовка, которое вы можете установить, является протокол. Это несчастливо. Одним из распространенных решений является использование системы на основе билета, которая опирается на существующий механизм HTTP для авторизации/аутентификации, а затем этот билет передается вместе с подключением к сети и проверяется таким образом: https://devcenter.heroku.com/articles/websocket-security