4

当我输入安全数据库的 URL 时,它会在页面上显示以下消息:

{"error":"unauthorized","reason":"You are not authorized to access this db."}

虽然这条消息肯定能说明问题,但我更愿意将用户重定向到不同的页面,比如登录页面。我尝试更改沙发配置中的 authentication_redirect 选项,但没有成功。我该怎么做呢?

4

1 回答 1

1

text/html仅当客户端明确接受内容类型(例如发送Accept: text/html标头)时,身份验证重定向才有效:

GET /db HTTP/1.1
Accept: text/html
Host: localhost:5984

在这种情况下,CouchDB 将在您的身份验证表单上发送HTTP 302响应而不是重定向,使用配置选项指定:HTTP 401authentication_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 错误不是合适的解决方案。

于 2013-09-24T01:39:08.577 回答