使用AngularJS登录CouchDB:仅为/ _session发送auth cookie

时间:2015-12-16 14:18:52

标签: javascript angularjs authentication cookies couchdb

以前的帖子 - 12

我现在拥有的:带有两个控制器的AngularJS应用程序。首先使用CouchDB文档,第二个执行到example.com/demo/_session的登录请求。

当我打开应用程序时,我无法使用couchdb(在第一个控制器中)进行编辑,因为某些操作仅限于已记录的用户。在第二个控制器中,我发送了$http上的简单POST,它返回Http-only(因此没有cookie魔法)auth cookie AuthSession。该cookie绑定到couchdb地址,理论上从页面到couchdb地址的任何请求也必须包含该cookie。

但这没有发生。没有人调用couchdb,除了/_session的调用带有AuthSession cookie。例如。 example.com/demo/_session获得AuthSessionexample.com/demo/records没有。

request

got http cookie

no cookies for bad kids?

在学习Angular和CouchDB时,我陷入了僵局。

我做错了什么?我不想隐藏在自定义身份的东西后面的couchdb - 太复杂而且不是一个好方法,我认为。

UPD:获取Set-Cookie标题也失败 - HttpPromise.success(function (data, status, headers, config)) headers中无效。我试图像headers("Set-Cookie")那样得到它 - 没有运气。

在couchdb配置中可能有问题吗?我uploaded it to pastebin

1 个答案:

答案 0 :(得分:1)

  1. 检查CORS是否已启用(我的原因为*
  2. 在配置中检查cors/credentials,一定是真的
  3. 在Angular {withCredentials:true}
  4. 中使用$http

    现在它有效。