我正在尝试实现一个使用 couchdb 作为后端的应用程序,但问题是, 安装 couchdb 时,couchdb 允许任何人进入 couchdb 并创建/删除/更新数据库,因此我们为 couchdb 服务器配置 admin(super admin(以防止匿名 如果我们在安装 couchdb 服务器时配置 superadmin,那么普通用户无法创建数据库,因此不会为用户创建 userdb。只有超级管理员才有权在 couchdb 中创建数据库。即使是具有"管理员"角色的用户也无法在 couchdb 中创建 db。
我只是自己处理了所有这些,几乎找不到任何关于它的信息......
从文档中:
用户只能访问(
GET /_users/org.couchdb.user:Jan
(或修改(PUT /_users/org.couchdb.user:Jan
(他们拥有的文档
这意味着用户可以将自己添加到_users数据库。 因此,如果已打开couch_peruser,则运行以下curl
命令将创建用户jan
以及userdb-6a616e
数据库。
curl -X PUT http://localhost:5984/_users/org.couchdb.user:jan
-H "Accept: application/json"
-H "Content-Type: application/json"
-d '{"name": "jan", "password": "apple", "roles": [], "type": "user"}'
您可以使用 PouchDB 身份验证插件中的 db.signUp(( 函数来有效地执行相同的操作。 此外,在最初为新的远程 PouchDB 实例创建db
var 时,我必须手动编码用户名:
function encode (str) {
return unescape(encodeURIComponent(str))
.split('').map(function (v) {
return v.charCodeAt(0).toString(16)
}).join('')
}
var db = new PouchDB('http://localhost:5984/userdb-' + encode(username), {
auth: {
username: username,
password: username
},
skip_setup: true // Because the DB won't exist initially
})