CouchDB Fauxton Web 界面:如何不要求登录到 create/edit 个文档

CouchDB Fauxton Web Interface: how to not require login to create/edit documents

我正在尝试将 CouchDB 实例设置为:

基本上,我希望 运行dom 人像这里描述的 members 一样:https://docs.couchdb.org/en/2.3.1/api/database/security.html#api-db-security

实现这一点需要哪些设置?他们住在 etc/local.ini 吗?

我不想使用 cookie 或个人用户数据库。


我是如何设置的

我将 CouchDB 配置为拥有管理员用户,boss

我还做了一个数据库bananashttp://my_couchdb:5984/_utils/#database/bananas/_all_docs


到目前为止我已经尝试过什么

httpdchttpd 中操纵 etc/local.ini (source) 中的 require_valid_user 对我没有用,也许我没有完全做到没错

根据 this answer,我尝试将管理员用户 boss 添加到权限 --> 管理员 --> _users db 和 bananas db 的用户,以及它没有达到我想要的结果。

然后我删除了这两个,curl $HOST/bananas/_security 的响应现在是 {}

This answer讲了创建低权限用户,没有讲如何绕过登录

下面的authentication_handler可行,但我不想要Admin Party,所​​以我需要一个更好的方法。

[chttpd]
authentication_handlers = {couch_httpd_auth, null_authentication_handler}

**更新**

正如@uminder 所指出的,开箱即用似乎可以制作没有凭据的文档。我 运行 来自第二台机器的以下命令:

curl -X PUT http://my_couchdb:5984/bananas/test -d '{ "name": "test document" }'

然后可以转到此处查看(但不能编辑)文档:

http://my_couchdb:5984/bananas/test

(请忽略主机名实际上不是my_couchdb

我需要的是使用网络UI,无需登录,编辑该文档。目前,UI 是 Fauxton。这是我的工作:

  1. 转到这里:http://my_couchdb:5984/_utils/#database/bananas/test
  2. 它重定向到登录页面:http://my_couchdb:5984/_utils/#login

如何才能不被重定向到登录,而只能使用 Web 编辑文档UI?


设置信息

请告诉我还需要哪些其他信息才能找到解决方案!我是配置 CouchDB 的新手。

我刚刚在 Windows 10 上本地安装了 CouchDB (Single Node Setup)。然后我在 [=16] 上创建了一个 admin user 和一个 bananas 数据库=].

使用 curl,我能够在 bananas 数据库中 createupdatedelete 文档,而无需提供任何凭据。

curl -X PUT http://127.0.0.1:5984/bananas/1 -d '{ "name": "doc 1"  }' 
curl -X PUT http://127.0.0.1:5984/bananas/1 -d '{ "name": "doc 2", "_rev": "1-5cd56a944d3d59a44613269396365431" }'
curl -X DELETE http://127.0.0.1:5984/bananas/1?rev=3-2b34329467970cc792cee5931a68ca2e

但是,当尝试在 bananas 中创建设计文档(索引)时,我收到了 "unauthorized" 错误,原因是 "You are not a db or server admin."

curl -X PUT http://127.0.0.1:5984/bananas/_design/name_idx -d '{ "index": { "fields": ["name"] } }

我在同一子网内的另一台计算机上安装CouchDB时的结果完全一样。似乎在这些情况下,新安装的具有默认设置的 CouchDB 会按照您希望的方式运行,至少在引用您的答案时是这样。

如果我必须让我的 CouchDB 可以通过 public URL 访问,我会尝试更改默认安全对象并在 [=] 中启用 CORS 27=] 文件.

[couchdb]
default_security = everyone 

[httpd]
enable_cors = true

[cors]
origins = *
methods = GET,POST,PUT,DELETE
credentials = false

绕过 Web 界面登录

我认为不能将 Fauxton 配置为绕过登录页面以允许匿名用户直接创建、更新或删除文档。您必须创建 couchdb-fauxton 项目的分支并更改代码以满足您的需要。

或者,您可以编写自己的网络界面(Angular、React、Vue.js ...),它在内部使用现有用户进行身份验证,但对最终用户隐藏这一点。