2017-10-17 67 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的更一般指南。