Я пишу небольшое приложение, которое предоставляет простой HTTP-API REST-ish. Я застрял, пытаясь решить, как сигнализировать о сбое из-за отсутствия авторизации.
Приложение не имеет API для аутентификации, но вместо этого зависит от наличия файла cookie, содержащего токен сеанса, полученный клиентом через другую службу. Приложение проверяет сеанс и использует удостоверение, полученное в процессе проверки, для выполнения авторизации для конкретного приложения. Клиент не может пройти аутентификацию непосредственно в этом приложении.
Моя проблема заключается в том, что очевидный код состояния HTTP для отклонения неавторизованных запросов, «401 Unauthorized», указан в терминах заголовка «WWW-Authenticate». См. rfc2616 сек. 10.4.2 .
Ответ ДОЛЖЕН включать
Поле заголовка WWW-Authenticate (раздел
14.47) содержащий запрос, применимый к запрашиваемому ресурсу.
Не могу поверить, что это необычная проблема. Является ли обычным делом просто перегрузить 401, чтобы включить более общее использование? Как насчет браузеров, которые выдают диалоги auth / e (чего, кстати, я не видел в своем тестировании, так что, возможно, этого не происходит для POST)?
Итог: можно ли использовать 401 в этом контексте или есть лучшее решение?