2012-03-13 328 views
2

使用CouchDB开发Web应用程序的最佳方法是什么?前端用户必须登录[例如论坛]?为此,我需要一些验证机制来检查用户名/密码并将它们存储在会话/ cookie中。使用CouchDB进行前端登录

我如何才能意识到在CouchDB中?有没有办法直接在沙发上运行服务器端代码?我是否需要像node.js或php解释器这样的其他软件组件?

非常感谢。

回答

0

尽管我对couchDB没有直接的经验,但据我所知它是一个数据库,这意味着你肯定会需要一种服务器端语言来与浏览器连接。在这种情况下,Node.js和php是可能的选择(尽管我认为couchdb对node.js有非常好的支持,尽管我可能弄错了)。无论哪种方式,这里有一个可能的设置node.js内:http://artem.posterous.com/nodejs-authentication-with-couchdb-and-expres

+0

感谢您的回复。 CouchDB可以直接提供HTML并通过其内置显示和列表功能自行构建完整的应用程序。这个(沙发) http: /document.html?kassenbuch/_design/buchhaltung 当然,您可以轮询视图,您已经通过简单的JavaScript定义了map/reduce-functions。但我找不到任何运行简单的服务器端代码。 – 2012-03-13 12:51:07

+0

我的糟糕之处在于,我知道我们研究了couchDB和mongoDB,以便为我们的客户提供我们的noSQL解决方案,尽管我只是在选择完成后探索mongoDB的一部分,所以我认为couchDB非常类似于建立。在这种情况下,我希望有人能够给你一个更相关的答案。 – 2012-03-13 12:57:36

+0

不,这不是真的,你可以使用,但鉴于它的性质,你不需要任何服务器端语言来与CouchDB接口。请参阅http://couchdb.apache.org/:'''CouchDB是完全包含网络的数据库。用JSON文档存储数据。使用您的网络浏览器通过HTTP访问您的文档。用JavaScript查询,合并和转换您的文档。''' – rekinyz 2012-07-19 15:30:06

0

Couchdb可以为您处理。它将进行沙发级别的认证和数据库级别的认证。 http://wiki.apache.org/couchdb/Security_Features_Overview

基本上有一个_users数据库拥有所有用户,您可以在_security文档中设置用户以保护数据库。

对于文档级别的安全性,您必须扮演您自己的角色。我被告知这不被推荐,并且数据库每个用户模型在这里受到青睐。

您还可以使用BROWSERID(女神) https://github.com/iriscouch/browserid_couchdb

Kan.so拥有从前端创建用户,如果你正在建设一个couchapp,想一些软件包管理一些不错的包。

1

你现在想看看新的帽衫项目http://Hood.ie

它包括一个API来管理CouchDB的用户帐户,包括:

// sign up 
hoodie.account.signUp('[email protected]', 'secret'); 

// sign in 
hoodie.account.signIn('[email protected]', 'secret'); 

// sign out 
hoodie.account.signOut(); 

// change password 
hoodie.account.changePassword('currentpassword', 'newpassword'); 

// change username 
hoodie.account.changeUsername('currentpassword', 'newusername'); 

// reset password 
hoodie.account.resetPassword('[email protected]'); 

// destroy account and all its data 
hoodie.account.destroy(); 

// find out who the currently logged in user is (returns undefined if none) 
hoodie.account.username; 

和事件......

// user has signed up (this also triggers the authenticated event, see below) 
hoodie.account.on('signup', function (user) {}); 

// user has signed in (this also triggers the authenticated event, see below) 
hoodie.account.on('signin', function (user) {}); 

// user has signed out 
hoodie.account.on('signout', function (user) {}); 

// user has re-authenticated after their session timed out (this does _not_ trigger the signin event) 
hoodie.account.on('authenticated', function (user) {}); 

// user's session has timed out. This means the user is still signed in locally, but Hoodie cannot sync remotely, so the user must sign in again 
hoodie.account.on('unauthenticated', function (user) {}); 
2

Superlogin是一个新的登录的NodeJS框架,支持CouchDB的登录。

我最近将这个新的身份验证API集成到了我的一个移动应用程序中,这很容易做到。明确的文档和演示应用程序代码是非常出色的启动器。尽管只有新开源代码,但代码成熟度和测试覆盖率感觉它已被用于生产一段时间。开发人员一直非常乐于助人并且很有帮助

  • 广泛的服务器API和可选的Angular客户端API。
  • 全面的演示应用程序。
  • 支持本地用户名/密码,密码重置,密码更新,用户配置文件更新。
  • 为每个用户帐户添加任意​​数量的社交OAuth登录(Facebook,Twitter,Google等)。使用支持超过300个身份验证插件的PassportJS
  • 可以整合SendGrid API验证电子邮件和发送每用户会话 其他用户的事件通知
  • 生成临时长和随机CouchDB的用户名/密码,所以你仍然可以复制到PouchDb使用基本身份验证直接向CouchDB的服务器,但有显著改善安全。
  • 100%免费的饼干,防止CSRF攻击
  • 快速,可扩展的可选Redis的会话存储
  • 综合测试套件。

完全开源的,MIT许可证: