验证CouchDB中的API密钥

时间:2010-08-31 19:02:46

标签: api couchdb api-key

我最近对CouchDB产生了兴趣,并希望尝试围绕它形成一个小应用程序。

我当前如何邀请我的系统的方式是请求提供两个东西,一个id,一个API密钥和一个格式。 ID是数据库中文档的_id,API Key是另一个具有{“valid”:true / false}属性的文档的_id,格式是他们想要的格式。如果API密钥有效,系统将以请求的格式生成给定id的显示页面。否则它将返回403统计代码。

不幸的是,我找不到从显示页面中提取另一个文档的方法。我刚刚开始使用CouchDB,所以也许这里有一些简单的东西,我很想念。

1 个答案:

答案 0 :(得分:4)

使用_show函数,涉及三个部分:

  1. 设计文件
  2. 设计文档中的show函数
  3. 要显示的其他文件
  4. 对于网址格式/db/_design/ddoc/_show/my_show_func/otherdoc

    1. 设计文档为_design/ddoc
    2. 该设计文档中的show函数为shows.my_show_func
    3. 要显示的文档有_id otherdoc
    4. 这些只涉及 两个文件。我能想到的唯一方法就是按照API键设计doc。用户将查询/db/_design/API_KEY/_show/other_doc_id。 CouchDB很放松。数千个具有相同或相似_show函数的设计文档没有任何问题。您可以根据需要使用HTTP COPY方法将基本设计文档克隆到新的API密钥。然后,您可以通过删除设计文档来撤消API密钥。然而,这显然是一种独特的方法,值得再次思考。

      最后的考虑是(使用默认的CouchDB,没有反向代理,mod_security等)如果用户可以读取一个文档,他们可以读取整个数据库(例如,从_all_docs查询。)因此显示功能是软件的便利,但不是安全网关。