背景研究:
用户通过jquery.couch.js或其他方式注册Couchapp/CouchDB
https://issues.apache.org/jira/browse/COUCHDB-1175 - 特别是"Ari Najarian"的帖子
题:
解释我在上面发布的SO问题:
"基本上我想要一个注册表单,用于在couchdb中为couchapp注册一个帐户.这需要在couchdb _users数据库中创建一个新用户,并创建一个新数据库,新用户被分配了数据库角色admin.所有这些都需要服务器管理员凭据."
上一个问题的答案涉及使用外部单独的服务器作为管理员登录到couchdb以监视couchdb并根据需要修改couchdb以响应来自客户端的某些数据事件.
我的问题是 - 这是唯一的方法吗?这不是打败了couchdb的2层Web堆栈的全部目的吗?有没有办法从验证函数中修改couchdb数据库,该函数检查"type == user"文档,而"内部"/单独以管理员身份登录?
如果有一些简单的方法可以做到这一点,我很抱歉,我只是找不到合适的文档.
额外问题澄清:
问题#1 - 如果凭证存储在代码中(作为新用户数据库的验证发送),那么任何人都可以"查看html源"并接管数据库.
-要么-
问题#2 - 如果未提供凭据并且匿名发送请求,则将在_users数据库中创建新用户,并将发送成功回复消息.但是没有为用户创建新的数据库(并且不能没有管理员凭证),用户可以为特定于应用程序的目的进行交互(例如添加/删除数据).并且 - 从上面的couchbase博客链接 - 如果您使用角色/名称保护您的数据库对抗匿名读者和验证函数以防止匿名写入,那么匿名制作的用户帐户(例如,想要注册数据库空间以使用app)无法做任何事情,因为出于明显的安全原因,匿名用户无法指定他们希望拥有的任何角色.这意味着拥有功能用户的唯一方法是事先创建用户帐户+关联数据库作为管理员,然后分发这些用户凭据 - 就像私人邀请系统一样,是吗?
重申一下,有没有办法,只使用couchdb和couchdb的身份验证处理程序,设计文档函数,客户端ajax等的一些组合,以便连接客户端注册并获得个人数据库(显然只有数据库)他们有访问并可以与之交互?