Аутентификация пользователя на сервере с поддержкой простого HTTP и Websocket - PullRequest
0 голосов
/ 24 июня 2018

Пользователи могут подключаться к серверу через простой HTTP или Websocket.

Что происходит с сеансом Websocket по истечении сеанса HTTP?Что происходит с HTTP-сеансом, когда сеанс Websocket закрыт?

Как можно выполнить аутентификацию пользователя на сервере, поддерживающем оба протокола?

Ответы [ 3 ]

0 голосов
/ 25 июня 2018

Это действительно зависит от того, как ваше приложение справится с этим. Как упоминалось в @Myst, обычно есть только один сессионный cookie - HTTP-сессия. Ваше серверное приложение может закрыть веб-сокет, если этот сеанс недействителен, или оставить его открытым до следующего соединения. Вопрос только в том, когда вы проверяете сеансы, подключенные к веб-сокету: только когда установлено соединение? или когда сообщение получено?

0 голосов
/ 25 июня 2018

RFC 6455 - это документ, который определяет протокол WebSockets и не предписывает какой-либо конкретный способ аутентификации клиента:

10.5,Аутентификация клиента WebSocket

Этот протокол не предписывает какого-либо конкретного способа, которым серверы могут аутентифицировать клиентов во время рукопожатия WebSocket.Сервер WebSocket может использовать любой механизм аутентификации клиента, доступный для универсального HTTP-сервера, например куки-файлы, HTTP-аутентификацию или TLS-аутентификацию.

Хотя WebSockets и HTTP могут использовать одну и ту же инфраструктуру (прокси, фильтрация), аутентификация), имейте в виду, что HTTP и WebSockets - это разные каналы связи , и это необходимо учитывать при разработке механизма аутентификации: это распространенное заблуждение, что пользователь, прошедший аутентификацию в сети хостингаПриложение также аутентифицируется в потоке сокетов.

0 голосов
/ 24 июня 2018

Вообще говоря, обычно есть только один файл cookie сеанса - сеанс HTTP.

Поскольку соединения WebSocket начинаются как HTTP, часто соединение аутентифицируется во время фазы HTTP и обновляется до WebSocket только после успешной аутентификации ...

... это зависит от дизайна приложения, но это часто так.

Если сеанс признан недействительным после того, как было установлено соединение WebSocket, соединение (часто) будет оставаться открытым и аутентифицированным в течение всего времени, пока оно сохраняется (так как большинство приложений не будут повторять этап аутентификации после установления соединения).

...