Я только что разобрался со всем этим сам и почти ничего не мог найти ...
Из документации :
Пользователи могуттолько доступ (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"}'
Вы можете использоватьФункция db.signUp () из плагина PouchDB Authentication позволяет эффективно делать то же самое.Кроме того, мне пришлось вручную кодировать имя пользователя при первоначальном создании db
var для нового удаленного экземпляра PouchDB:
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
})