【发布时间】:2010-12-27 20:07:29
【问题描述】:
我正在尝试使用 couchbeam 在 couchdb 中创建一个数据库,该数据库具有管理员用户/密码集。我已经在 couchdb 的 local.ini 文件中设置了我的凭据并重新启动。我创建数据库的代码是:
couchbeam:start(),
Params = #couchdb_params{username="test" ,password="pass"},
Connection = couchbeam_server:start_connection_link(Params),
Db = couchbeam_db:create(Connection, "testdb")
此时 Db = {unknown_error, 401}。我在这里做错了吗? 401 似乎表示身份验证错误。
我的用户名/密码没问题,因为这可以从命令行运行:
$curl -X PUT http://test:pass@127.0.0.1:5984/testdb
{"ok":true}
我正在运行 Ubuntu 9.10,couchdb 0.10.0。沙发梁 0.4.1,二郎 R1301。有什么想法吗?
【问题讨论】:
-
在您的控制台中尝试以下跟踪命令:
dbg:tracer().、dbg:tpl(couchbeam_server, '_', [{'_', [], [{return_trace}]}]).、dbg:p(all, c)。 ?调用 couchbeam_db:create() 后的调试输出可能会导致您遇到问题。 -
这两种情况的区别在于,couchbeam 使用 HTTP 授权标头,而 curl 通过 URL 进行身份验证。这可能是服务器配置问题吗?
-
我运行了跟踪位,它没有透露任何额外的细节。 401 是从 couchdb 回来的。知道如何配置 couchdb 以获取 HTTP 授权标头(可以这样做)吗?
-
我走得更远了。使用正确的用户名/密码,我返回:{"error":"unauthorized","reason":"You are not a server admin."} 通过更改为无效密码,我得到:{"error":"unauthorized" ,"reason":"名称或密码不正确。"} 所以这可能是一些 couchdb 错误或 auth 标头错误或不受支持。
标签: authentication erlang couchdb