当我打入安全数据库的URL时,它会在页面上显示以下消息:
{"error":"unauthorized","reason":"You are not authorized to access this db."}
虽然这条消息确实得到了重点,但我更愿意将用户重定向到不同的页面,例如登录页面。我已经尝试更改沙发配置中的authentication_redirect选项但没有成功。我该怎么做呢?
答案 0 :(得分:1)
身份验证重定向仅在客户明确接受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不知道是人从浏览器还是应用程序库发送的请求。在最后一种情况下,重定向到HTML表单而不是引发HTTP错误是不合适的解决方案。