2013-10-15 36 views
1

我打電話以下代碼:

$.couch.login($.extend({ name: "harry", password: "secrets"}, callback)); 
$.couch.session(callback); 

,其中「哈利」只是我使用$.couch.signupcallback創建一個虛擬用戶是一個簡單的對象,指定成功/與像這些機構的錯誤/功能齊全:

success: function (data) { 
    console.log('Success'); 
    console.log(data); 
} 

此代碼返回如下:

Success 
Object {ok: true, name: "harry", roles: Array[0]} 

Success 
Object {ok: true, userCtx: Object, info: Object} 

第一個返回是好的,但第二個,從sessionuserCtx對象基本上是空的,用null這個名字。

此外,當我嘗試使用我的個人用戶名和密碼(我作爲一個蒲團管理員使用的)登錄,這將返回:

Success 
Object {ok: true, name: null, roles: Array[1]} 
(0: "_admin") 

Success 
Object {ok: true, userCtx: Object, info: Object} 

和讓人着迷,首先要求知道好像知道我是管理員,但沒有獲得任何其他數據,第二個請求與前一個示例執行的操作相同。

有什麼想法?我沒有正確使用$.couch.session嗎?我的沙發實例有什麼問題嗎?

僅供參考我使用1.4.0版本,並從源代碼構建。

+0

我還發現,運行'$ .couch.db('_用戶)。OpenDoc的('org.couchdb。 user:'+ data.name,callback);''.couch.login'調用的'success'方法在'_should_'時沒有找到用戶記錄,但是當適當的'username :password @'被添加到'localhost'。我真的認爲這個'$ .couch.session'正在以某種方式搞砸我。 – blaineh

+0

我是否必須手動通過身份驗證cookie?在我看來,這將由'$ .couch'庫處理。 – blaineh

回答

1

事實證明,我真正需要的是一個apache reverse proxy。沙發實例無法訪問AuthSession cookie,因爲它來自端口5984。現在,事情跟下面添加到工作的偉大我apache2.conf(可能是httpd.conf一些)

LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so 
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so 
LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so 

ProxyPass /_couch http://localhost:5984 nocanon 
ProxyPassReverse /_couch http://localhost:5984 
+0

[nginx](http://nginx.com/resources/admin-guide/reverse-proxy/)的工作方式也一樣。把所有東西都放在同一個域名上也消除了我的許多麻煩。 – fet