我正在尝试创建一个使用 JavaScript (Express.js)SAS Token
与Azure API Management Rest API通信。但是使用它实际上会导致我使用401 Unauthorized
. 我正在使用以下代码行。
// setting one day expiry time
const expiryDate = new Date(Date.now() + 1000 * 60 * 60 * 24)
const expiryString = expiryDate.toISOString()
const identifier = process.env.AZURE_APIM_IDENTIFIER
const key = process.env.AZURE_APIM_SECRET_KEY ?? ""
const stringToSign = `${identifier}\n${expiryString}`
const signature = CryptoJS.HmacSHA256(stringToSign, key)
const encodedSignature = CryptoJS.enc.Base64.stringify(signature)
// SAS Token
const sasToken = `SharedAccessSignature uid=${identifier}&ex=${expiryString}&sn=${encodedSignature}`
上面的代码片段返回给我的是这样的:(
SharedAccessSignature uid=integration&ex=2021-04-21T10:48:04.402Z&sn=**O8KZAh9zVHw6Dmb03t1xlhTnrmP1B6i+5lbhQWe**=
为了安全起见隐藏了一些字符,但字符数是真实的)
请注意,上述 SAS 令牌中只有一个尾随破折号,而所有示例中的 SAS 令牌和从 API 管理门户手动创建的 SAS 令牌都有 2 个 破折号=
==
有什么我做错了吗?
提前致谢。