在没有身份验证的情况下显示数据

时间:2020-03-16 11:53:28

标签: authentication couchdb

在couchDb>数据库>权限中,在角色中添加_admin,并且在URL中添加用户名和密码都可以正常工作,但是出于下载附件的目的,我不会在显示curl中添加用户名和密码。

所以我只想删除显示数据中的身份验证。我该怎么办?

示例:

1)http://username:password@127.0.0.1:5984/database/001 用于添加,删除,更新

2)http://127.0.0.1:5984/database/001/test.php 仅用于显示或下载附件。

1 个答案:

答案 0 :(得分:0)

要提供一个每个人只能读取少数几个可以写的模式 1 ,您想在设计文档中使用validate_update_doc 2 函数。任何创建,更新或删除文档的请求都会调用该函数。

例如,需要修改的管理员角色,但允许任何人读取数据库:

function(newDoc, oldDoc, userCtx) {
  if (userCtx.roles.indexOf("_admin") === -1) {
    throw( { forbidden : "Only admins can modify the database." } );
  }
}

设计文档可能看起来像这样

{
  "_id": "_design/validate_write",
  "validate_doc_update": "function (newDoc, oldDoc, userCtx) { if (userCtx.roles.indexOf('_admin') === -1) throw( { forbidden : 'Only admins can modify the database.'} ); }" 
}

在Fauxton中轻松创建此文档。正如两个参考文献所概述的那样,这可以扩展到用户角色等。

请注意,对于您的情况,必须将CouchDB配置属性require_valid_user 3 设置为false。


1 CouchDB身份验证食谱:Everybody can read only some can write
2 CouchDB validate_doc_update函数
3 CouchDB require_valid_user configuration property