使用JS

时间:2016-09-27 13:25:22

标签: javascript azure azure-cosmosdb

我正在开发一个应用程序,它应该连接到外部DocumentDB数据库(不是我的)。该应用程序使用Cordova / Ionic构建。

我从Microsoft Azure找到了一个JavaScript库,以确保DocumentDB数据库连接,但它要求一些奇怪的东西,如collection_ridtokens

我从外部DocumentDB数据库中获得了以下内容:

但我该如何从这些信息中检索collection_ridtoken

2 个答案:

答案 0 :(得分:1)

没有行级授权,DocumentDB可以从服务器端应用程序访问,而不是直接从浏览器中的javascript访问。当您为其提供主令牌时,您将获得完全访问权限,这通常不是您希望最终用户客户端访问的权限。即使是只读密钥通常也不是您想要传递给客户的密钥。 Azure提供的javascript库旨在从node.js作为服务器端应用程序运行。

也就是说,如果你真的想在没有在服务器上运行代理应用程序的情况下从浏览器访问它,你肯定可以使用正常的REST调用直接访问DocumentDB REST API。我认为Azure提供的SDK不会直接在浏览器中运行,但是在Browserify的帮助和一些手动调整(它是开源的)之后,你可能能够让它运行。

您可以从为您提供连接字符串信息的相同人员处获取集合名称,并使用基于名称的路由来访问该集合。我不确定令牌的确切含义,但我猜你是指会话令牌(会话级一致性所需)。如果您想知道有关该令牌如何来回传递的详细信息(在HTTP标头中),请查看REST API规范,但如果您走这条路线,SDK会自动处理它。

答案 1 :(得分:0)

请注意,DocumentDB还提供了与行级授权相当的支持,允许您为所需实体创建特定权限。获得此类权限后,您可以检索相应的令牌,该令牌的作用域在特定时间段内有效。您需要设置一个可以获取这些令牌并分发给您的用户应用程序的中间层。然后,用户应用程序可以将这些令牌用作承载令牌,而不是使用主密钥。

您可以在https://msdn.microsoft.com/en-us/library/azure/dn783368.aspx

找到更多详情

https://msdn.microsoft.com/en-us/library/azure/7298025b-bcf1-4fc7-9b54-6e7ca8c64f49