13

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

但是我在用户注册方面遇到了一些问题。couchdb 内置的允许设置 cookie 并使其非常容易将其插入您的网站。但是我的应用程序需要一些非常重要的东西才能说它有一个“正确的”用户注册系统。

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

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

知道如何在不进行任何较低级别的核心 Erlang 开发(不是 Erlang 人)的情况下克服这些问题吗?如果有人知道我是否可以使用 OAuth 对 Twitter 或 GitHub 帐户进行身份验证并将其与 couchdb 数据的处理方式(内部validate_doc_update函数)无缝集成,那也很棒。

谢谢

4

1 回答 1

12

虽然内置的用户数据库可以工作,但我不建议将它用于您描述的工作流程。以下是一些其他选项:

浏览器 ID

我真的建议使用 BrowserID。IrisCouch 在这里为 couchdb 提供了一个插件:

https://github.com/iriscouch/browserid_couchdb

这将负责正常的注册工作流程。

如果您想更进一步并让您的用户“相当匿名”,您可以按照这个名为“Mingle”的沙发应用程序的示例进行操作

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

开放ID

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


我认为您不能将 oauth 纯粹与 Couch 一起使用,正如这篇文章所建议的那样:

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

因此,您最接近的就是遵循 Datacouch 所做的事情。

希望这些建议有所帮助。

于 2011-12-01T17:27:28.857 回答