请求反馈:Couchdb使用多个用户/帐户的客户端复制(pouchdb)进行设置

时间:2015-01-28 15:06:26

标签: node.js security authentication couchdb pouchdb

在进入开发之前,我希望获得有关我想做的改变的反馈,从mongo转移到沙发上。

基本上我有一个webapp,用于帮助组织用户活动(todolist,calendar,notes,journal)。它目前使用mongodb,但我想把它移到沙发上,主要是因为沙发复制能力和clientdb交互(pouchdb)。我使用localstorage在浏览器上有一个类似的本地设置,由mongo支持,但我正在寻找更成熟的解决方案。

由于couchdb与mongodb的不同之处,我认为每个用户都应拥有自己的沙发数据库,​​并且他们的文档是我的每个应用程序组件。基本上,由于本地数据库复制和安全性,我必须将所有内容都移动到沙发上。

我有3个问题。

1)我认为沙发没有文档级别的安全/身份验证,对吗? (因此我将每个用户资产移动到他们自己的数据库,好主意?)

2)我的计划是让用户登录网站,然后我的后端nodejs代码对它们进行身份验证,然后向下发送一些auth / session令牌。然后,客户端上的javascript使用其本地pouchdb数据进行自我设置,并将复制请求直接发送到couchdb服务器(使用从服务器端进程获取的身份验证令牌)。他们应该只能访问他们的数据库,因为我可以根据数据库身份验证访问(对吗?) 您如何看待这种设置?应该有用吗?

3)关于couchdb服务提供商,为什么他们的沙发版本变化如此之大? IE,happycouch,1.6.1,iris 1.5,cloudant,1.0.2?而且我也听说很快就会推出couchdb 2.0 ...我想使用cloudant,但1.0.2是1.6或1.5的版本,如果我没有做任何异国情调,那么这很重要吗?

奖金问题:p继续上一个问题,你知道托管node.js并拥有couchdb的本地实例的任何服务吗?我想将我的后端服务器代码用作代理,但不能以牺牲另一个网络跃点为代价。

非常感谢您的反馈, 保罗

1 个答案:

答案 0 :(得分:4)

  

由于couchdb与mongodb的不同之处,我认为每个用户都应该拥有自己的沙发db

这是CouchDB的最佳实践。不错的选择。

  

我认为沙发没有文档级别的安全/身份验证,对吗? (因此我将每个用户资产移动到他们自己的数据库,好主意?)

你是对的:https://github.com/nolanlawson/pouchdb-authentication

  

我的计划是让用户登录网站...

是的。您可以直接将Cookie标头从Node.js传递到CouchDB,它可以正常工作。 nano有一些关于如何做到这一点的文档:https://github.com/dscape/nano#using-cookie-authentication

  

关于couchdb服务提供商,为什么他们的沙发版本差异很大

Couch社区是一个快乐支离破碎的大家庭。 :)

  

我想使用cloudant,但是1.0.2是1.6或1.5版本的很多版本,如果我没有做任何异国情调,那有关吗?

1.0.2是指Cloudant分叉CouchDB时。从那以后,他们已经添加了很多自己的功能,现在他们已经具备了相当的功能。

各种Couch实现之间的最大区别在于身份验证。每个人(Cloudant,CouchDB,Couchbase)都采用不同的方式。