【发布时间】:2016-01-20 02:05:17
【问题描述】:
我正计划构建一个办公扩展应用程序(或多或少是一个 HTML5 应用程序)。应用程序最有价值的部分是应用程序提供的内容,因此内容信息必须安全地保存在数据库中。任何试图访问内容的人都必须通过显示他们的用户名和密码来证明他们的身份。
我有一个名为“_users”的 Cloudant 数据库,用于存储所有用户登录信息,例如用户名和密码,还有一个名为“_contents”的 Cloudant 数据库,用于存储所有内容信息。
当用户尝试使用他们的网络浏览器访问“_content”数据库时,应用程序会要求用户登录。在成功将此用户的凭据与“_users”数据库中的数据匹配后,该用户就可以访问“_content”数据库。
对我来说理想的情况是,登录和授权过程可以仅使用 Web 浏览器和 Cloudant 数据库来完成。我不想在两者之间有任何“中间人”(例如运行 nodejs 的 Web 服务器)。我该怎么做。
好的,这里有一些我无法解决的问题。
- 当用户尝试与 Cloudant 数据库建立连接时,必须提供 API 密钥。好的,我可以生成一个允许读取“_users”数据库的 API 密钥,并将此 API 密钥提供给用户。用户可以使用此密钥连接到“_users”,但这是否意味着使用此 API 密钥,任何用户可以读取“_users”数据库中的所有数据吗?这将是一场灾难。
- 如果可以解决上述问题,如何进行授权?我应该继续为每个用户生成 API 并在以后删除它们吗?我应该在什么时候执行删除操作?
【问题讨论】:
-
我这是可能的。您能否澄清一些事情,以便我们帮助回答您的问题?办公扩展应用程序是 HTML5,但是它使用 Web 服务器吗?或者它是在 Office 内部运行的某种嵌入式应用程序之类的?
-
另外,您能否澄清一下:您是否将
_users数据库用于您自己的应用程序?您是否将它与 Apache CouchDB 一起使用?通常,Cloudant 不使用_users数据库,所以我想知道您是否正在从 CouchDB 过渡到 Cloudant,或者您是否一直在阅读 CouchDB 文档或类似的东西。再次感谢! -
@JasonSmith,office 扩展应用程序本质上是由 Microsoft Office Word 嵌入式浏览器打开的 HTML5 网页,这些网页在服务器上提供(我在 bluemix 上选择了 nodejs),所有普通浏览器-->服务器的东西也可以在这里完成。
-
@JasonSmith,我还是 NOSQL 的新手。我从 Bluemix 中找到了 Cloudant NoSQL,因此我正在考虑从 mysql 迁移到 Cloudant。我从未尝试过 CouchDB,但我注意到 Cloudant 与 CouchDB 非常相似,我正在阅读 CouchDB 文档,因为没有详细的 Cloudant 文档。从安全部分,我确实看到了“_user”数据库的“特殊”用法,我正试图找到更多关于它的信息。我希望对用户授权有更多的控制:当他/她选择支付 1 个月时,用户只能访问数据库 1 个月。仍在努力寻找方法
-
感谢您的反馈!在大多数情况下,Cloudant 与 CouchDB 非常相似。大多数差异是 CouchDB 尚不具备的附加功能。无论如何,我推荐 Cloudant 指南 docs.cloudant.com/index.html,其中包括完整的 API 参考:docs.cloudant.com/api.html
标签: javascript node.js database authorization cloudant