2011-12-01 141 views
12

我正在构建一个独立的couchdb应用程序。这些被称为couchapps。这个想法是,数据库本身在端口80上提供,并返回HTML并作为实际网站工作。这是一个非常强大的想法,我对你的代码在你的数据库中的新概念感到惊讶。CouchApp用户注册

但我在用户注册时遇到了一些问题。内置在couchdb中的cookie允许设置cookie,并使其很容易插入到您的网站。但是有几件相当重要的事情遗漏了我的应用程序需要说它具有“适当的”用户注册系统。

  1. 没有注册验证。没有电子邮件发送,没有验证码显示。这意味着任何人都可以垃圾你的_users数据库,并创建尽可能多的新用户。

  2. 如果用户忘记密码,则无法帮助他们恢复密码。

任何想法如何克服这些问题,而不是在一个较低的水平(不是Erlang的家伙)进行任何硬核erlang开发?如果有人知道我是否可以使用OAuth对Twitter或GitHub帐户进行身份验证,并且无缝地集成了couchdb数据的处理方式(在validate_doc_update函数中),那也是非常棒的。

谢谢

回答

11

虽然内置的用户数据库可以工作,我不会推荐它为你描述的工作流程。这里有一些其他的选择:

浏览器ID

我真的会推荐使用BrowserID。 IrisCouch提供了一个插件来这里的CouchDB:

https://github.com/iriscouch/browserid_couchdb

这将走正常的注册工作流程的照顾。

如果你想要把它更进一步,有你的用户“相当无名氏”,你可以按照这个couchapp叫“乐居”

https://github.com/thedod/Mingle

Twitter的整合

最大的例子Ogden的“DataCouch”项目通过twitter登录,尽管它使用一些Node外部处理器来使其工作。在这里看到:

https://github.com/maxogden/datacouch/blob/master/processors/auth/twitterauth.js

Facebook的整合

https://github.com/ocastalabs/CouchDB-Facebook-Authentication

的OpenID

https://github.com/mcaprari/couchdb-openid


我不认为你可以用纯粹的沙发使用OAuth,一个s该文中建议:

http://bennolan.com/2011/01/11/couchdb-oath.html

所以你会得到有以下什么Datacouch做最接近的一次。

希望这些建议有所帮助。

+0

谢谢。这几乎是我所遇到的所有材料。而且似乎还有另一个问题(在与Max Odgen交谈后),Cookie的过期时间只会持续到您的浏览器打开为止......这是完全可怕的。我会接受你的答案,并希望1.2将解决这个问题。 –

+2

您可以使用从1.3开始的oauth –