CouchDB Fauxton Web 界面:如何不要求登录到 create/edit 个文档
CouchDB Fauxton Web Interface: how to not require login to create/edit documents
我正在尝试将 CouchDB 实例设置为:
- 不需要在 web 用户界面登录 何时为 运行dom 人访问
http://my_couchdb:5984
文档create/edit/delete ]
- 防止 运行dom 人员更改管理员级别
- 例如:修改设计文档、添加用户或删除现有用户
基本上,我希望 运行dom 人像这里描述的 members
一样:https://docs.couchdb.org/en/2.3.1/api/database/security.html#api-db-security
实现这一点需要哪些设置?他们住在 etc/local.ini
吗?
我不想使用 cookie 或个人用户数据库。
我是如何设置的
我将 CouchDB 配置为拥有管理员用户,boss
。
我还做了一个数据库bananas
:http://my_couchdb:5984/_utils/#database/bananas/_all_docs
到目前为止我已经尝试过什么
在 httpd
和 chttpd
中操纵 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。这是我的工作:
- 转到这里:http://my_couchdb:5984/_utils/#database/bananas/test
- 它重定向到登录页面:http://my_couchdb:5984/_utils/#login
如何才能不被重定向到登录,而只能使用 Web 编辑文档UI?
设置信息
- CouchDB 版本:
2.3.1
- OS:
Ubuntu 16.04.3 LTS
请告诉我还需要哪些其他信息才能找到解决方案!我是配置 CouchDB 的新手。
我刚刚在 Windows 10 上本地安装了 CouchDB
(Single Node Setup)。然后我在 [=16] 上创建了一个 admin user
和一个 bananas
数据库=].
使用 curl
,我能够在 bananas
数据库中 create
、update
和 delete
文档,而无需提供任何凭据。
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 ...),它在内部使用现有用户进行身份验证,但对最终用户隐藏这一点。
我正在尝试将 CouchDB 实例设置为:
- 不需要在 web 用户界面登录 何时为 运行dom 人访问
http://my_couchdb:5984
文档create/edit/delete ]
- 防止 运行dom 人员更改管理员级别
- 例如:修改设计文档、添加用户或删除现有用户
基本上,我希望 运行dom 人像这里描述的 members
一样:https://docs.couchdb.org/en/2.3.1/api/database/security.html#api-db-security
实现这一点需要哪些设置?他们住在 etc/local.ini
吗?
我不想使用 cookie 或个人用户数据库。
我是如何设置的
我将 CouchDB 配置为拥有管理员用户,boss
。
我还做了一个数据库bananas
:http://my_couchdb:5984/_utils/#database/bananas/_all_docs
到目前为止我已经尝试过什么
在 httpd
和 chttpd
中操纵 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。这是我的工作:
- 转到这里:http://my_couchdb:5984/_utils/#database/bananas/test
- 它重定向到登录页面:http://my_couchdb:5984/_utils/#login
如何才能不被重定向到登录,而只能使用 Web 编辑文档UI?
设置信息
- CouchDB 版本:
2.3.1
- OS:
Ubuntu 16.04.3 LTS
请告诉我还需要哪些其他信息才能找到解决方案!我是配置 CouchDB 的新手。
我刚刚在 Windows 10 上本地安装了 CouchDB
(Single Node Setup)。然后我在 [=16] 上创建了一个 admin user
和一个 bananas
数据库=].
使用 curl
,我能够在 bananas
数据库中 create
、update
和 delete
文档,而无需提供任何凭据。
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 ...),它在内部使用现有用户进行身份验证,但对最终用户隐藏这一点。