Cloudant auth: отсутствует база данных _users
я настраиваюсь с CouchDB на Cloudant, и яЯ в замешательстве, потому что Cloudant, похоже, выполняет аутентификацию иначе, чем обычная CouchDB. В частности, Cloudant, похоже, не хватает_users
база данных.
Я читаю FAQ об Cloudant authВоти предоставил следующие инструкции:
Могу ли я использовать функции безопасности CouchDB (база данных _users, объекты безопасности, функции проверки) в Cloudant?
Да, ты можешь. Если вы хотите использовать базу данных _users, вы должны сначала отключить Cloudant 'собственная безопасность ролей, которыми вы хотите управлять через _users. Для этого вам нужно поместить документ JSON, как показано ниже, в конечную точку _security базы данных (например,https://USERNAME.cloudant.com/DATABASE/_security): {"
Cloudant»: {"никто": ["_reader ","_writer ","_admin»]}, "читатели»: {"имена»: [»демо»],»роли»: []}}
Эти инструкции работали нормально и позволили мне обновить объект _security базы данных.
Что не былоЯ понял, как настроить базу данных _users. Это нене существует автоматически, поэтому я попытался создать его с помощью обычного:
curl -X PUT $COUCH/_users
Это работало нормально, но когда я пытаюсь добавить нового пользователя в _users следующим образом:
curl -HContent-Type:application/json \
-vXPUT $COUCH/_users/org.couchdb.user:me \
--data-binary '{"_id": "org.couchdb.user:me","name": "me","roles": [],"type": "user","password": "pwd"}'
Похоже, что правильно создать документ:
{"ok":true,"id":"org.couchdb.user:me","rev":"3-86c3801fdb8c32331f5f2580e861a765"}
Но у нового пользователя в _users на Cloudant отсутствует хешированный пароль:
{
"_id": "org.couchdb.user:me",
"_rev": "3-86c3801fdb8c32331f5f2580e861a765",
"name": "me",
"roles": [
],
"type": "user",
"password": "pwd"
}
Поэтому, когда я пытаюсь пройти аутентификацию у этого пользователя, я получаю следующую ошибку:
{"error":"bad_request","reason":"missing password_sha property in user doc"}
В моей локальной установке CouchDB создание нового пользователя в _users автоматически создаст хешированный пароль:
{
"_id": "org.couchdb.user:test",
"_rev": "1-9c1c4360eba168468a37d7f623782d23",
"password_scheme": "pbkdf2",
"iterations": 10,
"name": "test",
"roles": [
],
"type": "user",
"derived_key": "4a122a20c1a8fdddb5307c29078e2c4269abffa5",
"salt": "36c0c05cf2a3ee321eabd10c46a8aa2a"
}
Я пробовал копировать_design / _auth» документ из моей локальной установки CouchDB в Cloudant, но результаты те же - без хешированного пароля.
Кажется, в какой-то момент я сошел с рельсов, но яЯ не уверен, где это произошло. Как настроить Cloudant для использования того же типа аутентификации, что и для обычного CouchDB?