cloudant:检索一些临时用户字段

时间:2012-05-04 11:09:32

标签: jquery couchdb cloudant

我正在尝试根据登录用户过滤我的文档集。 我按照cloudant.com的人员给出的instructions for auth,创建了一个_user db,它可以工作。

现在我的问题是:是否可以向用户对象添加一些ad-hoc键并从我的代码中检索它,并使用jquery.couchLogin等一些js插件?

我想要创建的例子:

{
    "_id": "org.couchdb.user:agata",
    "_rev": "1-03a67c25da054b5f24d215f4db059d71",
    "name": "agata",
    "type": "user",
    "roles": ["admin"],
    "password_sha": "***",
    "salt": "***",
    "MYKEY1":"my val",
    "MYKEY2":"my val2"
}

然后检索MYKEY1和MYKEY2 ....

我已经尝试使用$ .couchLogin,但我可以检索的只是一个userCtx对象,它只报告上面的一些字段(名称,角色)。看来我应该使用couchdb代码来向userCtx对象添加键,我真的不想这样做。

是否有更简单的解决方案?

1 个答案:

答案 0 :(得分:3)

由于这个问题没有得到答案,我在这里报告了cloudant支持的答案:

  

您无法在Cloudant的用户文档中存储该信息   出于安全目的的公共集群。如果你是的话,你可以   运行CouchDB,BigCouch或私有Cloudant集群。

     

但是,您可以将该信息存储在您的某个数据库中   有客户端(假设它是一个应用服务器,而不是一个浏览器)做   过滤和权限。

所以我现在的策略是

  1. 使用我需要的有关用户的所有信息创建另一个数据库。
  2. 只允许授权用户访问此数据库
  3. 检索客户端(在检查登录后)我需要的所有信息。
  4. 我会及时通知您,以确认其有效以及我遇到了哪些问题。

    <强>更新

    有效! 所以策略基本上是建立两个数据库:

    1. 一个(_users)名称,sha密码等,特定于cloudant
    2. 另一个(your_users_DB),只需要您需要执行的各种操作所需的用户名和其他密钥。
    3. 所以我所做的就是创建第二个数据库,其文档结构如下:

      {"_id":"org.couchdb.user:USERONE",
      "name":"USERONE",
      "type":"user",
      "roles":["user"],
      "filters":{"FILTER1":"VAL1","FLTER2":"VAL2"}}
      

      然后,当用户(比如说USERONE)成功登录时,也会检索此文档,并使用“filters”字段来过滤我的集合。

      某种解决方法,但它运行稳健