2013-09-23 41 views
2

當我在URL衝牀安全數據庫它在頁面上顯示以下信息:CouchDB的拒絕訪​​問重定向

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

雖然這個消息肯定得到跨越我寧願將用戶重定向到一個點不同的頁面,如登錄頁面。我試着改變沙發配置中的authentication_redirect選項,但沒有成功。我會如何去做這件事?如果客戶明確接受text/html內容類型

回答

1

驗證重定向只適用(例如發送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的不知道被請求從瀏覽器或b發送人爲y應用程序庫。在最後一種情況下,重定向到HTML表單而不是引發HTTP錯誤不是合適的解決方案。

+0

好的,但有沒有解決方案,使用別的東西?有沒有辦法讓這個消息可讀?這就是我要找的。 – skinneejoe

+0

此消息僅在瀏覽器進行重定向之前顯示。最終用戶將在'Location'頭部的URL中看到可能是人類可讀的URL(: – Kxepal

+0

)感謝您的跟進!當我訪問一個虛擬主機時,我得到這條消息,它讓我重寫了特定的數據庫。我想我必須稍微調整一下我的設置才能使它工作,我想怎麼做。感謝您的幫助! – skinneejoe