2016-07-08 72 views
3

我读过关于这个话题,都散落在一个类似的问题约10相关计算器问题...我想简化围绕一个虚构的“待办事项”我的问题应用。我正在学习编写代码(javascript),并且遇到了障碍。我的“激情”项目让我学习非常复杂,解决了个人旅行问题。有一天,我希望我可以放弃!如何构建一个多用户pouchdb/coucdb应用和验证

这里是虚构的应用程序:

这个程序将使用离子2.离线第一个应用程序将允许用户登录并创建自己的列表中内置“到DOS。”这些应该可以通过他们的手机和桌面进行访问和同步。用户还应该能够与可能能够复制其他人的“待办事项”列表的社区分享他们的待办事项列表。应用程序还应该能够查询用户最喜欢做什么,比如“刷我的牙齿”或“查看我的蝙蝠侠集合”。用户还应该能够使用任何社交网络登录(Facebook,Twitter,谷歌等)。

1)你如何构建pouchdb/couchdb数据库?打开couchbase/cloudant。

它是每个用户的数据库吗?它是每个角色的数据库吗?它是一个每个人的数据库(我知道这有安全问题)?

2)它是正确的假设,你需要在每个客户端pouchdb数据库合并到一个大的数据库查询?

3)您是否必须使用NodeJS后端或服务器?

4)您可以使用Auth0或Stormpath进行身份验证吗?

我一直在研究大约5天,我无法弄清楚这一点。我非常感谢所有的帮助。

编辑:我觉得这说明了什么,我需要很好除了验证我的猜测可能与Bluemix工作?

https://cloudant.com/blog/replication-with-cloudant-pt-3/#.V38hxpMrJE6

的思考?

回答

1

你可以用“pouchdb认证”管理用户身份验证:(https://github.com/nolanlawson/pouchdb-authentication

您可以创建在CouchDB的“_user”数据库身份验证和用户的元数据“用户”文件,然后为每个用户创建一个数据库。

你可以为每个用户创建数据库用户和角色与“设计文件”,规范哪些用户和与它们相关的角色获得与文档做的(用户的“待办事项”列表)。

PouchDB“搜索插件”是一种很好的开始使用这些(https://github.com/nolanlawson/pouchdb-quick-search)的方法,它提供了一种很好的方式来轻松查找内容。

我只是为我正在构建的应用程序使用PouchDB/CouchDB。我在服务器端需要做的事情是使用Perl。 PHP可能是一个更好的支持选项,但我喜欢Perl,并且有几个perl模块可以与CouchDb接口,但是我已经完成了我在perl中使用Curl所需的大部分功能。

“是正确的假设,你需要在每个客户端pouchdb数据库合并到一个大的数据库查询?”

我不知道那件事。我最初的预感是否定的,除非你想把所有的ToDo列表放在一个数据库中,这样他们就可以很容易地被所有人共享。如果您将用户数据库中的用户待办事项保存起来,我认为用户可以更轻松地管理更细粒度的共享。

+1

我没有签出“pouchdb-authentication”。我最终使用“superlogin”(https://github.com/colinskow/superlogin)创建了一个类似的_user数据库并为您创建了一个用户数据库。它也有很多选择。我会尝试PouchDB搜索插件,看起来有一个CouchDB版本。我只是在想,我不知道如何在阅读该插件后脱机处理共享部分。这可能需要提醒用户连接到搜索。 – dhndeveloper

+0

Cloudant正在研究一些他们称之为Envoy的东西,这个东西解决了我关于整体结构但是早期测试版的问题(https://medium.com/offline-camp/scaling-offline-first-with-envoy-ada42d130cfc#.q7t4wbcmt)。我可能会在未来尝试。 couchdb贡献者建议我创建1-db-per-user,然后执行过滤复制来创建共享数据库。 – dhndeveloper

+0

我不熟悉“过滤的复制”,所以我不得不考虑一下。您也可以在数据库的“安全”中为数据库设置用户权限。这很容易,我最终做的是为管理任务提供访问权限。 –