微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用户通过jquery.couch.js或其他方式注册Couchapp / CouchDB

背景

现在,我正在尝试使用couchDB / couchapp构建一个应用程序,该应用程序将存储来自用户的持久且关键的信息,并且我坚持使用couchapp进行用户注册所需的步骤.

基本上,我想要做的是有一个简单的注册表单,用户可以使用它来注册帐户以使用我的应用程序.这将需要在couchdb _users数据库中创建新用户,并创建新数据库,并为新用户分配数据库管理员角色.

这一切都需要服务器管理员凭据

理想情况下,我希望能够使用其中一个jquery.couch.js函数进行调用,但似乎没有一种安全的方法可以做到这一点. (还是那里?)

将此任务卸载到中间层软件或其他方面的最有效但最安全的方法是什么?

通过有效,我的意思是需要为用户提供最少量的步骤,对我来说不一定是最少的麻烦.

截至目前,我已经设置了一个单独的node.js服务器来接收注册请求.我的couchDB服务器管理员凭据作为假定的私有变量存储在节点server.js文件中.然后我使用couch-client将任何数据库创建请求POST回到couchDB.

在这里跳过太多(潜在的不安全)箍吗?有没有更好的方法来确保安全的注册过程?

谢谢.

解决方法

管理员用户需要创建数据库并分配数据库管理员.

多米尼克的答案很棒.然而,另一种方法是保持直接couchapp架构并在用户沙发链外部运行您的管理代码.

例如,在NodeJS中,以管理员身份连接到CouchDB. Query / _users / _changes?Feed = continuous& include_docs = true.创建用户时,您将实时收到数据事件.当您看到新用户时,请创建数据库并将其指定为管理员.

客户端代码可以轮询其新数据库.或者,客户端也可以通过_changes COMET提要查询/ _users.无论哪种方式,一旦浏览器知道该帐户已设置,您就可以在UI中向用户显示该帐户.

代理(3层架构)非常棒.他们无能为力.但是,我经常更喜欢“CouchDB与外部代理”的架构,原因有两个:

>很简单.有一个Web服务器.用户连接到CouchDB.您连接到CouchDB.一切都在数据库中.配置和维护问题较少.>它很灵活.您可以使用任何语言编写外部客户端,从任何服务器运行.您编写了一个大型应用程序来执行所有操作,或者编写许多小型应用程序以专注于每个任务(例如,创建新数据库,通过电子邮件用户发送丢失的密码,通知数据库是否太大等等).

原文地址:https://www.jb51.cc/jquery/178073.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐