Authentication Перенаправление работает только тогда, когда клиент явно принимает text/html
типа содержимого (например, посылает Accept: text/html
заголовка):
GET /db HTTP/1.1
Accept: text/html
Host: localhost:5984
В этом случае CouchDB пошлет HTTP 302
ответ вместо HTTP 401
, который перенаправляет на форме аутентификации, указанный с опцией authentication_redirect
конфигурации:
HTTP/1.1 302 Moved Temporarily
Cache-Control: must-revalidate
Content-Length: 78
Content-Type: text/plain; charset=utf-8
Date: Tue, 24 Sep 2013 01:32:40 GMT
Location: http://localhost:5984/_utils/session.html?return=%2Fdb&reason=You%20are%20not%20authorized%20to%20access%20this%20db.
Server: CouchDB/1.4.0 (Erlang OTP/R16B01)
{"error":"unauthorized","reason":"You are not authorized to access this db."}
Othewise CouchDB не знает, была просьба послать человека из браузера или б y. В последнем случае перенаправление на HTML-форму вместо повышения HTTP-ошибки не подходит.
ОК, но есть ли решение, используя что-то еще? Есть ли способ сделать это сообщение понятным для человека? Это то, что я ищу. – skinneejoe
Это сообщение отображается только перед переходом на браузер. Конечный пользователь увидит страницу в URL-адресе из заголовка 'Location', который может и должен быть читаемым человеком (: – Kxepal
Спасибо за последующие действия! Я получаю это сообщение, когда я посещаю vhost, который забирает меня для перезаписи для конкретной базы данных Я думаю, что мне нужно немного изменить настройки, чтобы заставить его работать, как я хочу. Спасибо за вашу помощь! – skinneejoe