在将require_valid_user设置为true的同时,如何使CouchDB数据库对公众可读?

Lui*_*uis 5 authentication couchdb

我的目标是能够在不必验证用户的情况下读取一个数据库,应该需要用于编辑该数据库的验证.所有其他数据库只应对有效用户可读/写.我不希望为将来创建的每个数据库设置它,所需的读/写所需的身份验证应该是默认的.

我想我可以通过设置require_valid_user来实现这一点true,但现在CouchDB总是要求输入用户名和密码,所以我需要一种方法来排除一个数据库.此数据库对于公共可读,对于有效用户可写.

Sti*_*las 4

我通过通过一个数据库(即 /login)对所有用户进行身份验证来解决这个问题。该数据库是公共的,包含一个设计文档,并以 HTML 文件作为附件。用户收到此文件,在表单上填写他们的凭据,然后我使用 jQuery.couch.js 进行身份验证并在他们的浏览器中存储 cookie。一旦他们获得有效的登录,我就会检查 userCtx 对象以检查他们的角色,并将他们重定向到适当的数据库。

这是一种 hack,但在 CouchDB 能够在您未登录数据库时提供登录页面而不是 JSON 错误消息之前,这是我找到的唯一可靠的方法。

确保使用设计文档中的 validate_doc_update 键来保护您的公共登录数据库,以便除管理员之外的任何人都无法覆盖其中的任何内容。

希望这可以帮助。