在couchbase同步网关中对多个数据库进行身份验证

时间:2016-05-14 21:39:44

标签: authentication synchronization couchbase pouchdb gateway

如何使用Couchbase同步网关同时对多个数据库进行身份验证?

我正在开发一个移动应用程序,我使用pouchdb通过couchbase同步网关与couchbase服务器同步。我必须要同步的数据库:“messages”和“profiles”。

同步工作非常好,但我有一个问题:我只能同时对一个数据库进行身份验证,但不能同时对两个数据库进行身份验证:我正在使用here所述的自定义身份验证,这是通过调用“/ database1 / _session”端点。然后返回一个cookie,让我登录数据库1.如果我现在也要同步第二个数据库,我调用“/ database2 / _session”来覆盖第一个cookie,即我现在能够同步第二个数据库,但不再是第一个数据库了。

有没有办法为多个数据库启用身份验证?有没有办法创建全局用户,即仅对一个数据库无效的用户?或者还有另一种方法可以解决这个问题吗?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

好吧,经过数小时尝试编写操作cookie等的代理后,我找到了一个更简单的解决方案:

在我的服务器应用程序中,我可以为所有数据库的用户设置一个令牌密码,我可以在登录时发送给应用程序。然后,应用程序可以使用http基本身份验证:

  this.db.sync(this.cfg.couchbase + 'messages', {
    live: true,
    retry: true,
    ajax: {
      headers: {
          'Authorization': 'Basic ' + btoa(this.userID + ':' + token)
      }
    }
  }).on('change', this.changed.bind(this))
    .on('error', err => console.error(err));
});