当我尝试在 couchdb 中创建用户时,它给我错误 {"error":"forbidden","reason":"Doc ID 必须采用 org.couchdb.user:name 形式}

问题描述 投票:0回答:2

早些时候我问了这个问题,我得到了理论解决方案,但后来我尝试创建一个用户,它给了我一个错误

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"}

couchdb
2个回答
1
投票

我认为问题是冒号

:
必须是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"


1
投票

我通过在 _users 数据库中创建一个文档找到了这个问题的解决方案,

{
    "_id":"org.couchdb.user":username,
    "name":"username",
    "type":"user",
    "roles":[],
    "password":"plaintext_password" 
}

并将上述内容放入该文档中

© www.soinside.com 2019 - 2024. All rights reserved.