我正在使用CouchDB对我的应用程序的用户进行身份验证,这实际上只是CouchDB数据库的前端,所以我使用API来验证用户,逻辑上是这个代码
httpget(http://wrongusername:wrongpassword@mycouch.com:5984) //not my actual code
应该回复
{"error":"unauthorized","reason":"Name or password is incorrect."}
就像我cURL
相同的网址时一样。但相反,无论我输入的用户名和密码是什么,它都会返回
{"couchdb":"Welcome","version":"1.2.0"}
而且我知道我不是以某种方式在代码中存储有效的URI或响应,因为我已经更改了HttpGET的参数以返回_all_docs,并且它已经返回了所有文档,普通用户不应该能够做到的。我没有修改任何配置文件,登录没有存储在数据库的任何地方
答案 0 :(得分:0)
您确定要使用已设置用户的相同CouchDB实例吗?客户端,甚至不是Android,都有办法绕过身份验证。
答案 1 :(得分:-1)
Couchdb使用会话cookie进行身份验证,也许您的http客户端之前授权使用couchdb并保留cookie?
我能想到的另一件事:除非你将require_valid_user
设置为true
,否则couchdb仅限制对单个数据库的访问,这将解释/
上的“欢迎”消息。