1

我正在尝试通过 javascript 为单页应用程序(pouchdb)设置登录/注销页面。

如文档中所述,通过 curl 检索和发送 authsession cookie 工作正常,但是当我尝试在 javascript 中重现它时,var contType = AjaxRequest.getAllResponseHeaders(); 警报(contType);

我可以检索的唯一参数是:

服务器:CouchDB/1.5.0 (Erlang OTP/R16B01) 内容类型:text/plain;charset=utf-8 缓存控制:必须重新验证

有人成功检索到此会话 cookie 并将其与 javascript 一起使用吗?谢谢,jl

4

2 回答 2

2

AuthSession 被标记为HTTPOnly - 即它只会通过 HTTP(S) 公开并且对 JavaScript 不可用(以防止篡改)。

如果用户验证正确,则调用 /_session 将返回 200 响应,如果凭据不正确,则返回 401。如果成功(200 响应),AuthSession cookie 将由浏览器自动存储并传递给未来对 CouchDB url 的请求,直到关闭浏览器/选项卡或您向 /_session 发出 DELETE 请求。

您应该能够在给定这些语义的情况下实现登录页面,而无需直接访问 cookie。

于 2013-12-31T04:07:10.550 回答
0

这是个好问题。我不知道我是否可以回答这个问题,但我有不同的处理方式。发出 ajax 请求后,浏览器本身应该设置 cookie。

https://github.com/carhartl/jquery-cookie

我在使用这个 jQuery 插件来处理来自 CouchDB 登录的 AuthSession cookie 时有过积极的体验。$.cookie("AuthSession")通常可以解决问题。

于 2013-12-27T23:43:50.490 回答