Надлежащие заголовки HTTP для успешных / неудачных входов в систему? - PullRequest
12 голосов
/ 15 августа 2011

Существуют ли какие-либо стандарты использования заголовков HTTP для ответов об успешных / неудачных входах в систему?

Ответы [ 3 ]

6 голосов
/ 17 августа 2011

Заголовок, который отправляет сервер - это 200 OK или 401 отклоненных кодов состояния в случае успеха или сбоя.

См. http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html Раздел 10.4.2 401 Несанкционированный для этого.

При отправке 401 сервер должен отправить

WWW-Authenticate = "WWW-Authenticate" ":" 1 # вызов

чтобы указать, какую схему следует использовать для аутентификации.

См. http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html Секция 14,47 WWW-Аутентификация для этого.

1 голос
/ 03 марта 2013

Это зависит от того, что вы подразумеваете под «входом в систему» ​​и, возможно, также от того, как сервер обрабатывает вход / выход из системы / авторизацию.

Обычно выражение «войти» относится к сеансам.Один «входит», делает то, что нужно сделать, а затем «выходит».Сервер либо сохраняет информацию о сеансе и отправляет идентификатор сеанса в куки клиенту, который затем отправляет cookie обратно, чтобы сообщить серверу, что сеанс продолжается.Внутри сеанса переменные могут меняться, и их состояние сохраняется между вызовами от клиента.

Интуитивно понятно, что при запуске сеанса должен быть своего рода ответ «Авторизован» вместе с ответом «Несанкционированный».(401) '.

Однако HTTP является протоколом без состояния.Он не знает о состоянии, только о том, авторизован ли запрос или нет.Вот почему существует статус 401, но нет определенного «авторизованного» кода состояния (поскольку, если запрос не является неавторизованным, он неявно авторизуется).

Для того, чтобы создать ощущение работы над сеансом в HTTPНа уровне (без использования конструкции, такой как PHP session_start ()) учетные данные авторизации должны отправляться с каждым запросом.Это то, что происходит, когда, например, используется файл .htaccess для защиты папки.После ввода в диалоговом окне пароля имени пользователя и пароля они впоследствии отправляются каждый раз, когда есть доступ в области авторизации.Существует иллюзия «сеанса», но в действительности имя пользователя и пароль отправляются при каждом запросе.

1 голос
/ 17 августа 2011

Есть только HTTP/1.0 401 Unauthorized.

Но недавно я разработал этот «шаблон авторизации»: при первом посещении страницы вы получаете 401 и экран входа в систему. Как только вы введете правильные данные для входа, вы получите 200. Когда ваш сеанс истекает или вы нажимаете кнопку выхода, вы получаете 401 и снова вход в систему. Экран входа в систему всегда 401, все остальные страницы 200.

...