Аутентификация веб-узлов

Я запускаю сервер websocket и спрашиваю себя, если он планирует, что проверка подлинности клиентов будет выполнена с рукопожатием в будущем... draft xxxx возможно:)

Есть ли у вас информация? Я слышал, что с draft07 идентификатор сеанса может быть отправлен на сервер, поэтому, возможно, это может помочь аутентифицировать клиента...

То, что я делаю, это ждать не более 10 секунд, пока клиенты не отправят мне сообщение с заголовком входа, именем пользователя и паролем. Но я думаю, что это не "решение". Как вы, ребята, это делаете?

Ответы

Ответ 1

Протокол WebSockets позволяет обмениваться стандартными заголовками HTTP-аутентификации во время рукопожатия. Если у вас есть сервер WebSockets, который подключается к существующему веб-серверу в качестве модуля, тогда существующая аутентификация на веб-сервере должна работать. В противном случае, если у вас есть автономный сервер WebSockets, вам может потребоваться добавить поддержку аутентификации.

Обновление

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