【问题标题】:How do I authenticate with couchdb using couchbeam?如何使用 couchbeam 对 couchdb 进行身份验证?
【发布时间】: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","re​​ason":"You are not a server admin."} 通过更改为无效密码,我得到:{"error":"unauthorized" ,"reason":"名称或密码不正确。"} 所以这可能是一些 couchdb 错误或 auth 标头错误或不受支持。

标签: authentication erlang couchdb


【解决方案1】:

这原来是 couchbeam 的一个错误。一直是fixed,修复已发布到github

【讨论】:

  • 接受你的回答,这样人们就会知道这个问题已经结束了。
  • 会做 - 但 SO 会让您等待 24 小时才能接受自己的答案……所以您必须至少再等 6 小时。
猜你喜欢
  • 2013-09-14
  • 1970-01-01
  • 1970-01-01
  • 2015-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-05
  • 2017-11-24
相关资源
最近更新 更多