2017-10-17 156 views
1

有要求從客戶端JavaScript生成SAS令牌,我訪問過許多博客,沒有任何生成SAS令牌的JavaScript代碼的實時代碼示例。 我想要一個用於從JavaScript生成SAS令牌的工作代碼。從JavaScript代碼生成SAS令牌?

回答

2

發現這個網站上

有使用服務器端後臺生成令牌的原因。爲了生成令牌,您需要帳戶密鑰。您可以很好地使用客戶端JavaScript生成SAS令牌,但爲此,您需要將帳戶密鑰暴露給您的客戶端應用程序,這是一個巨大的安全風險,因爲如果某人擁有您的帳戶密鑰,他們可以執行任何與您的存儲帳戶。因此,建議您使用服務器端應用程序創建SAS令牌,以便不公開您的帳戶密鑰。

如果您仍然希望使用客戶端JavaScript創建SAS令牌,請參閱構建服務SAS。基本上轉到該鏈接底部標題爲構造簽名字符串的部分,並使用JavaScript編寫代碼,然後使用帳戶密鑰計算簽名。

https://docs.microsoft.com/en-us/rest/api/storageservices/Constructing-a-Service-SAS?redirectedfrom=MSDN

+0

該鏈接上的代碼不適用於JavaScript我已經檢查過該鏈接。 –

+0

完全同意答案。 +1。答案中提到的鏈接具有您需要用JavaScript編寫代碼的所有說明。如果您需要查看更接近客戶端JS的實際實現,我可以建議您查看用於Azure存儲的Node SDK:https://github.com/Azure/azure-storage-node。 –

0

的Azure存儲團隊已經發布Azure Storage JavaScript Client Library for Browsers解決您的使用案例。有一個official announcement在幾個月前解釋了它的基本原理。該庫仍處於預覽狀態,我找不到任何獨特的nuget或bower軟件包。

正如其他人已經指出的那樣,請遵循公告中提及的推薦開發實踐,以便在您的應用程序中使用SAS。幸運的是,using Shared Access Signatures (SAS)這幾天有很好的記錄 - 以及Azure Storage security的更一般指南。