2016-09-27 62 views
0

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

为了确保DocumentDB数据库连接,我找到了来自Microsoft Azure的JavaScript库,但它需要一些奇怪的东西,如collection_ridtokens

我有从外部DocumentDB数据库的家伙如下:

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

回答

1

没有行级授权,DocumentDB被设计为从服务器端应用程序访问,而不是直接从浏览器中的JavaScript访问。当您给它主令牌时,您将获得完全访问权限,这通常不是您最终用户客户想要的。即使只读密钥通常也不是你想要分发给客户的东西。 Azure提供的JavaScript库旨在作为服务器端应用程序从node.js运行。这就是说,如果你真的想从浏览器访问它,而不需要在服务器上运行代理应用程序,那么你可以直接使用普通的REST调用来直接访问DocumentDB REST API。我不认为Azure提供的SDK将直接在浏览器中运行,但借助Browserify的帮助和一些手动调整(它是开源的),您可能可以运行它。

您可以从提供连接字符串信息的相同人员那里获得集合名称,并使用基于名称的路由来访问集合。我不确定你的意思是什么,但我猜你是指会话令牌(需要会话级别的一致性)。如果您想了解有关如何来回传递令牌(在HTTP头文件中)的详细信息,请查看REST API规范,但是如果您使用该路由,它将由SDK自动处理。

+0

所以你说,我能找回通过正常的REST API调用的数据?那将是完美的。我只想读取数据以便在应用程序中显示它们,实际上我不想处理这个(对我来说)新类型的数据库,以及所有安全层和node.js等。我通过DocumentDB中的REST API检索数据?用普通的'POST'或'GET'请求?我有这个数据库的完整的Web API文档。 –

+0

看这里:https://msdn.microsoft.com/en-us/library/azure/dn781481.aspx –

+0

如果你发现这个答案令人满意,你能否接受答案? –

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