早些时候我问了这个问题,我得到了理论解决方案,但后来我尝试创建一个用户,它给了我一个错误
curl -X PUT http://admin:password@localhost:5984/_users/org.couchdb.user:jan \
-H "Accept: application/json" \
-H "Content-Type: application/json" -d "{\"name\": \"jan\", \"password\": \"apple\", \"roles\": [], \"type\": \"user\"}"
{"error":"forbidden","reason":"文档 ID 的格式必须为 org.couchdb.user:name"}
我认为问题是冒号
:
必须是URL编码的。
(我通过使用浏览器开发工具查看 UI 请求的样子发现了这一点。)
请注意,用户名同时出现在路径和正文 JSON 中。
# Here is an example command using cURL
echo -ne '{"name": "USERNAME", "type": "user","roles": [],"password": "PASSWORD"}' |\
curl -X PUT "http://admin:[email protected]:5984/_users/org.couchdb.user%3AUSERNAME" -d @-
# And same with HTTPie, my favourite
echo -ne '{"name": "USERNAME", "type": "user","roles": [],"password": "PASSWORD"}' |\
http PUT "http://admin:[email protected]:5984/_users/org.couchdb.user%3AUSERNAME"
我通过在 _users 数据库中创建一个文档找到了这个问题的解决方案,
{
"_id":"org.couchdb.user":username,
"name":"username",
"type":"user",
"roles":[],
"password":"plaintext_password"
}
并将上述内容放入该文档中