javascript - $.couch.session 返回空名称的 userctx

标签 javascript jquery session couchdb restful-authentication

我正在调用以下代码:

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

其中“harry”只是我使用 $.couch.signup 创建的虚拟用户,而 callback 是一个简单的对象,用于指定成功/错误/完成函数,主体如下这些:

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名称.

此外,当我尝试使用我的个人用户名和密码(我作为 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 版并从源代码构建。

最佳答案

事实证明我真正需要的是一个 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

关于javascript - $.couch.session 返回空名称的 userctx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19390048/

相关文章:

javascript - 在没有 ES6 语法和 yield 的情况下使用 mocha、Nightmare.js 进行测试

javascript - 如何在 JSON.parse 语句中正确访问数据?

jQuery - 取消绑定(bind)或重新绑定(bind)hoverIntent()?

javascript - 为什么使用 Jquery 迭代时总是从 json 数组结果中获取最后一行

javascript - 当从函数返回内容时,将新创建的 TD 元素上的 .innerHTML 设置为空白

javascript - 使用 localStorage 显示最近访问的 n 个页面

php - 登录时 Symfony2 和 PHP SDK 4.0 session 问题

java - 如何防止 Struts2 将 jsessionid 附加到 URL(在重定向时)?

javascript - 为什么 Express 渲染的页面不是 res.render 中指定的页面

session - pyspark 按用户标识计算 session 持续时间组