我正在构建一个独立的couchdb应用程序。这些被称为couchapps。这个想法是数据库本身在端口80上提供并返回HTML并作为实际网站。这是一个非常强大的想法,我对你的代码存在于数据库中的新概念感到惊讶。
但是我遇到了一些用户注册问题。在couchdb中内置的一个允许设置cookie,并使其很容易插入您的网站。但是,我的应用程序需要一些非常重要的东西,以便说它有一个“适当的”用户注册系统。
没有注册验证。没有发送电子邮件,也没有显示验证码。这意味着任何人都可以向您的_users
数据库发送垃圾邮件,并根据需要创建尽可能多的新用户。
如果用户忘记密码,则无法帮助他们恢复密码。
任何想法如何在没有在较低级别(不是Erlang家伙)进行任何核心Erlang开发的情况下克服这些问题?如果有人知道我是否可以使用OAuth对Twitter或GitHub帐户进行身份验证并且无法正确处理couchdb数据的处理方式(在validate_doc_update
函数内部),那也很棒。
谢谢
答案 0 :(得分:12)
虽然内置用户数据库可以工作,但我不建议您使用您描述的工作流程。以下是其他一些选择:
我真的建议使用BrowserID。 IrisCouch在这里为couchdb提供了一个插件:
https://github.com/iriscouch/browserid_couchdb
这将照顾正常的注册工作流程。
如果你想更进一步让你的用户“相当匿名”,你可以效仿这个名为“Mingle”的couchapp的例子
https://github.com/thedod/Mingle
Max Ogden的“DataCouch”项目通过twitter登录,虽然它使用一些Node外部处理器使其工作。见这里:
https://github.com/maxogden/datacouch/blob/master/processors/auth/twitterauth.js
https://github.com/ocastalabs/CouchDB-Facebook-Authentication
https://github.com/mcaprari/couchdb-openid
我认为你不能纯粹使用Couch的oauth,正如这篇文章所暗示的那样:
http://bennolan.com/2011/01/11/couchdb-oath.html
所以你最接近的就是跟随Datacouch所做的事情。
希望这些建议有所帮助。