使用CouchDB进行基本身份验证

TMi*_*hel 3 curl couchdb

我试图弄清楚如何http://test:test@localhost:5984/mydb在CouchDB 1.3.1中使用基本身份验证(即).

在被褥中:

  • 我创建了一个数据库 mydb
  • 我为它设置了两个用户.在" 安全"选项卡中:一个具有读访问权限["test"]和一个管理员["admin"]

然后我只是测试连接.

使用curl:

curl GET http://localhost:5984/mydb
Run Code Online (Sandbox Code Playgroud)

401未经授权返回,这很好.

curl GET http://test:test@localhost:5984/mydb
Run Code Online (Sandbox Code Playgroud)

返回200,所以一切都按预期使用curl.

使用浏览器或$ .ajax:

两者都返回401网址http://test:test@localhost:5984/mydb.

所以,问题:

  • 使用curl GET或使用$.ajax GET(或浏览器)有什么区别?
  • 我在CouchDB或其他允许执行此类身份验证的地方缺少一些配置吗?

fet*_*fet 5

它被称为跨源资源共享.基本上,浏览器可以对ajax调用进行限制.这是一项安全功能,不允许浏览器随意从任何地方加载资源.

在点击加载任意资源之后,您似乎希望能够这样做.但是,如果任何旧的JavaScript程序可以加载任何其他资源,有很多方法可以被劫持以注入代码或窃取信息.

CURL通过不受CORS的限制来解决这个问题.它只是提出你想要的任何旧请求.

此外,您可以通过查询localhost:5984/_session来启动会话,此时您将使用安全令牌cookie发送所有以下查询.jQuery.couch是一些常用函数的基本资源.