【问题标题】:How do I structure a multiuser pouchdb/coucdb app and authentication如何构建多用户 pouchdb/couchdb 应用程序和身份验证
【发布时间】:2017-08-27 10:52:30
【问题描述】:

我已经阅读了关于这个主题的大约 10 个相关的 stackoverflow 问题,这些问题都分散在一个类似的问题周围......我想围绕一个虚构的“todo”应用程序简化我的问题。我正在学习编码(javascript),但遇到了障碍。我的“激情”项目让我不断学习,非常复杂,解决了个人旅行问题。我希望有一天我可以回馈!

这是虚构的应用程序:

此应用将使用 Ionic 2 构建。第一个离线应用将允许用户登录并创建自己的“待办事项”列表。这些应该可以通过他们的手机和桌面访问并同步。用户还应该能够与社区共享他们的待办事项列表,他们可以复制其他人的“待办事项”列表。该应用程序还应该能够查询用户最常做的事情,例如“刷牙”或“查看我的蝙蝠侠收藏”。用户还应该能够使用任何社交网络登录(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

想法?

【问题讨论】:

    标签: ionic-framework couchdb pouchdb cloudant nosql


    【解决方案1】:

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

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

    您可以为每个用户数据库和“设计文档”创建用户和角色,以规范与其关联的用户和角色与文档(用户的“待办事项”列表)相关的内容。

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

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

    “假设您将每个客户端 pouchdb 数据库合并到一个大型数据库中进行查询是否正确?”

    我不知道。我最初的预感是否定的,除非您想将所有待办事项列表放在一个数据库中,以便所有人轻松共享它们。我认为如果您将用户待办事项保存在用户数据库中,管理用户更精细的共享可能会更容易。

    【讨论】:

    • 我检查了“pouchdb-authentication”。我最终使用了“superlogin”(github.com/colinskow/superlogin),它创建了一个类似的 _user 数据库并为您创建了一个用户数据库。它也有很多选择。我会试试那个 PouchDB 搜索插件,它看起来有一个 CouchDB 版本。我只是在想,在阅读了该插件后,我不知道如何离线处理共享部分。这可能需要向用户说明以连接到搜索。
    • Cloudant 正在开发他们称之为 Envoy 的东西,它解决了我关于整体结构的问题,但它的早期测试版(medium.com/offline-camp/… 可能会在未来尝试。couchdb 贡献者建议我创建 1-db-每个用户,然后进行过滤复制以创建共享数据库。
    • 我不熟悉“过滤复制”,所以我必须研究一下。您也可以在数据库“安全性”中为数据库设置用户权限。这很容易,我最终做了什么来为管理任务提供访问权限。
    猜你喜欢
    • 2015-07-13
    • 2015-12-16
    • 1970-01-01
    • 2014-07-22
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多