Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cookies 使用令牌(Cookie:AuthSession=xyz)进行的PockDB身份验证导致不安全的标头;曲奇;_Cookies_Ionic Framework_Header_Couchdb_Pouchdb - Fatal编程技术网

Cookies 使用令牌(Cookie:AuthSession=xyz)进行的PockDB身份验证导致不安全的标头;曲奇;

Cookies 使用令牌(Cookie:AuthSession=xyz)进行的PockDB身份验证导致不安全的标头;曲奇;,cookies,ionic-framework,header,couchdb,pouchdb,Cookies,Ionic Framework,Header,Couchdb,Pouchdb,我想使用couchdb提供的访问令牌连接到我的远程couchdb数据库,这可以通过发送带有以下内容的头来完成: Cookie: AuthSession={COUCHDB_TOKEN} 我用curl做这个没问题。但是,对于具有以下代码的数据库: new PouchDB(url, { ajax: { headers: {'Cookie': 'AuthSession=couchdb_token'} } }); 我得到了一个错误: Refused to set unsafe

我想使用couchdb提供的访问令牌连接到我的远程couchdb数据库,这可以通过发送带有以下内容的头来完成:

Cookie: AuthSession={COUCHDB_TOKEN}
我用curl做这个没问题。但是,对于具有以下代码的数据库:

new PouchDB(url, {
    ajax: { headers: {'Cookie': 'AuthSession=couchdb_token'} }        
});
我得到了一个错误:

Refused to set unsafe header "Cookie"
有没有一种方法可以将此令牌放入头中而不出现此错误


我已经做过研究,但无法找到一种方法,在不提供用户名和密码的情况下使用PockDB与远程数据库同步,但这些不应存储在客户端,因此。

问题是浏览器阻止了“Cookie”请求头的设置,因为此头由浏览器直接管理。您不能设置任何设置

您应该使用_会话端点向CouchDB进行身份验证。此端点将使用一个Set Cookie头进行响应,该Cookie头在浏览器中建立了AuthSession Cookie,并在下一次调用中发送回CouchDB

我通常做的是在CouchDB中配置ProxyAuthentication(注意:这在CouchDB 2.0中被破坏)模式,然后在我的应用程序中使用自定义auth头进行身份验证。这种方法有点复杂,但允许您将应用程序身份验证令牌与CouchDB一起使用。 ---编辑---

请检查一下你是否有电话号码。 身份验证令牌的逻辑为。 您不需要调用会话端点,只需使用适当的逻辑构建令牌即可

--编辑2--

查看CouchDB代码,令牌是以以下方式生成的:

“X-Auth-CouchDB-Token”:十六进制(秘密,”user@test.org))

其中:

  • secret是coach_httpd_auth/secret定义的密钥
  • 用户是标题X-Auth-CouchDB-UserName中提供的用户

您应该在客户端复制此逻辑

好的,谢谢,是的,我使用_会话端点,但只使用我的节点服务器,然后我将AuthSession cookie返回给客户端,但是如何使用它,但将其添加到头中?您说的另一个选项是配置代理身份验证,然后使用以下标题:{SECRET\u Token}{SECRET\u Token}是我们从询问会话中获得的相同令牌吗?因为这对我不起作用。我发现文档的这一部分非常不清楚,这个令牌是在哪里生成的HTTP头名称(默认情况下为X-Auth-CouchDB-Token),其中包含用于验证授权的令牌。此令牌是根据coach\u httpd\u auth/secret和coach\u httpd\u auth/x\u auth\u用户名创建的HMAC-SHA1。客户机和CouchDB节点上的密钥应该是相同的。@YvonaBurrow这里是我发布解决方法的链接