如何使用PouchDB安全连接到Cloudant?

时间:2015-05-23 18:14:51

标签: android ios couchdb pouchdb cloudant

我正在使用Cordova / PhoneGap为Android和iOS创建移动应用程序,并使用IBM的Cloudant数据库进行存储。我正在使用PouchDB javascript库来访问Cloudant数据库。目前我有这个代码来访问它...

db = new PouchDB('https://[myaccount].cloudant.com/[mydb]', {
    auth: {
      username: 'myusername',
      password: 'mypassword'
    }
});

我知道这是非常不安全的,我想知道是否有更安全的方法从应用程序内连接到我的数据库?

2 个答案:

答案 0 :(得分:1)

您可能希望考虑的一个选项是实施一项服务(例如,在云端运行),以便注册您应用的新用户。注册逻辑可能如下所示:

  1. 手机代码与您的应用服务通信,请求注册用户
  2. 该服务拨打Cloudant to create an API key,该电话将返回手机代码
  3. 手机代码会保存API密钥'用户名'和密码'在设备上。然后在auth: { username: 'myusername', password: 'mypassword' }对象中使用这些凭据。

答案 1 :(得分:1)

您应该永远不要将Cloudant凭据硬编码到客户端应用中。

一种设计模式是每个用户使用一个数据库"的方法:

  • 用户使用具有Cloudant管理员凭据的您的网络应用进行身份验证
  • 该应用为经过身份验证的用户创建数据库,并使用_reader&创建Cloudant API密钥。 _writer访问权限(https://docs.cloudant.com/api.html#authorization
  • 应用程序将此凭据与客户端进行通信(可以将其存储在本地' PouchDB文档中,如果您希望用户每次都进行身份验证,则只存储在内存中)