我正在开发一个使用 couchDB 的应用。当用户打开应用程序时,它将提示他输入用户名和密码。
现在我的问题是如何在couchDB中检查用户身份验证,我的意思是如何检查用户是否是沙发服务器中的现有用户或新用户。
CouchDB中是否有任何安全的用户身份验证方式?
答案 0 :(得分:4)
我不同意DHK的回答:CouchDB _users
数据库是进行用户身份验证的好方法。你没有在代码中管理用户(这确实是一种不好的做法); CouchDB处理所有密码salting / hashing / etc.自动为你服务。您需要添加的唯一内容是SSL(HTTPS),以便密码不会以明文形式发送。这是一个功能,而不是一个错误,因为这是HTTPS的设计目的。
我写了一篇blog post about CouchDB,其中谈了很多关于身份验证的内容,如果你只想快速启动并运行,this rough draft of a PouchDB plugin将向您展示如何使用CouchDB进行简单的注册/登录/注销操作(看看代码;它非常简单。
该插件的工作方式与您在Android上的操作方式之间的唯一区别是您无法使用Cookie。您将使用基本的HTTP身份验证(https://user:password@mycouch.com:5984
),只要您使用SSL,这也是正常的。 CouchDB有docs on SSL,或者你可以just put an Nginx proxy in front of it(我的首选解决方案)。
答案 1 :(得分:0)
您真的不应该将couchDB用户用作应用中的用户。
在应用程序的代码中存储登录和数据库服务器详细信息也是不好的做法。
我会为你的couchdb设置一个API,它可以屏蔽用户的任何密码,但除此之外,这是一个非常透明的API,只需将视图/ etc传递给实际的couchDB实例。
用户必须对此API进行身份验证,而API可能会使用某些" api用户"存储在couchdb中的数据,以验证它们是否为真品,如果不拒绝请求。