使用用户ID和密码

时间:2016-08-05 04:10:32

标签: javascript synchronization couchdb pouchdb

我有一个在虚拟linux机器上运行的couchdb。此数据库已启用并设置了cors。我添加了一个管理员用户和 密码到数据库。我还将require_valid_user设置为true。 我正在尝试使用下面的代码将网页中的pouchdb与couchdb在线同步。如果我只是通过地址 对于db(下面的1),我得到一个对话框,询问用户和密码。同步适用于此示例。 如果我尝试在URL中传递用户名和密码(如下面的2所示),我会收到同步错误和消息 “getCheckpoint拒绝了”。 对于我做错了什么或者我应该采取的另一种方法的任何建议将不胜感激。

感谢

P.S。我可以使用用户和密码浏览到URL。

var remoteCouch = "http://192.168.1.7:5984/mydb";  //1
//var remoteCouch = "http://userid:password@192.168.1.7:5984/mydb"; //2
sync();

function sync() {
  var opts = {live: true};
  db.sync(remoteCouch,opts,syncError);
}

1 个答案:

答案 0 :(得分:3)

我遇到同样的问题,尝试同步到cloudant.com上的couchDB时出现完全相同的错误消息。对我来说,解决方案是在远程服务器的URL中使用https://而不是http://。 URL的格式应为:

https://<api_key>:<key_passwd>@<username>.cloudant.com/<db_name>

因此,虽然我没有本地安装的数据库来测试这一点,但我怀疑您的错误源于当您提供凭据时沙发将请求重定向到安全连接的事实(方案1)。在方案2中,没有重定向。