2016-09-27 42 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