我目前正在尝试使用couchdb“会话”机制。我(ofc)读取:http://wiki.apache.org/couchdb/Security_Features_Overview和http://wiki.apache.org/couchdb/Session_API。
但是我无法登录。所以我有点徘徊,发现像http://guide.couchdb.org/draft/security.html和http://pierrel.posterous.com/securing-couchdb这样的文章以及一些SO线程。
所以,这就是我所做的: 我创建了我的用户数据库并添加了一个用户(totolol:foobar):
{
"_id": "org.couchdb.user:totolol",
"_rev": "1-88709660d602783be794f99825849f96",
"type": "user",
"name": "totolol",
"roles": [
"foo"
],
"password_sha": "c7912a8680385df682ba95db5b994e5e6ca0201d",
"salt": "1b5889d58de6ba15c51ccf5914f6b58a"
}
但是,无论我如何尝试登录:
curl -vX POST http://org.couchdb.user:totolol:foobar@bachman:8889/_session
curl -vX POST http://bachman:8889/_session -d 'name=totolol&password=foobar'
...
我总是得到相同的结果,这条消息的回复是:
{"error":"unauthorized","reason":"Name or password is incorrect."}
我不知道我做错了什么,也许我的配置坏了,但我被卡住了。所以我希望你们中的一个能告诉我该怎么做。 :)
答案 0 :(得分:0)
使用curl
,使用您提供的第二个示例:
curl -X POST http://username:password@server:5984/_session -d 'name=totolol&password=foobar'
这绝对是正确的程序。我已经在CouchDB v1.1.0上确认了它。
答案 1 :(得分:0)
您的用户名'totolol'与文档_id'org.couchdb.user:totolol'混淆。
如果使用'totolol:foo @',它应该可以正常工作。
答案 2 :(得分:0)
您创建了用户数据库? CouchDB已经有“_users”数据库,如果你为用户使用不同的数据库,那么你必须在local.ini文件中更改正确的参数。