我正在使用phonegap,kendoUI mobile和couchdb编写移动应用程序。我为我的服务器couchdb设置了管理员用户。
/ _usersdb中的文档具有以下格式:
{
_id: org.couchdb.user:foo
name: foo
passw: securepassword
role: []
type: user
salt: complexstring
nickName: fooNick
mail: fooNick@mail.com
}
我想获取所有用户的nickName和邮件,我希望/ _users db中的所有用户都可以这样做。
我确信使用管理员凭据很容易。我必须简单地运行这个命令:
curl -X GET 'http://adminUserName:adminPassword@192.168.0.111:5984/_users/_all_docs'
但是如果没有管理员凭证我怎么能这样做呢?
答案 0 :(得分:2)
_users
数据库受到_users
数据库本身的服务器或管理员以外的任何人的保护。任何其他用户只能检索与用户的登录名相关联(并表示)的文档。
虽然行为不可配置,但您可能会发现public_fields功能对您的任务有用。一旦它成为激活,常规用户可以请求/_users/_all_docs
资源和其他用户的文档,其中包含对返回字段的限制:只有公共资源可用。请确保您的用户同意他们的某些信息(包括登录名)将可用于其他世界。
在CouchDB docs中了解有关身份验证数据库限制的详细信息。