2

我正在调用以下代码:

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

其中“harry”只是我创建的一个虚拟用户$.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}

第一个返回没问题,但第二个, from sessionuserCtx对象基本上是空的,有null名字。

此外,当我尝试使用我的个人用户名和密码(我用作 Futon 管理员的用户名和密码)登录时,会返回:

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

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

令人着迷的是,第一个请求似乎知道我是管理员,但没有获取任何其他数据,第二个请求与前面的示例执行相同的操作。

有什么想法吗?我没有$.couch.session正确使用吗?我的沙发实例有问题吗?

仅供参考,我使用的是 1.4.0 版并从源代码构建。

4

1 回答 1

1

It turns out all I really needed was an apache reverse proxy. The couch instance didn't have access to the AuthSession cookie, since it was coming from port 5984. Now things work great with the following added to my apache2.conf (may be httpd.conf for some)

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
于 2013-10-17T16:28:34.837 回答