Published
Edited
Jul 26, 2022
2 stars
Insert cell
Insert cell
Insert cell
HostName = "my-hub.azure-devices.net"
Insert cell
SharedAccessKeyName = "service"
Insert cell
SharedAccessKey = "U2hhcmVkQWNjZXNzS2V5U2hhcmVkQWNjZXNzS2V5U2h="
Insert cell
generateAzureSasToken = (HostName, SharedAccessKeyName, SharedAccessKey, minutesValid=10) => {
const resourceUri = encodeURIComponent(HostName)
const expiry = Math.ceil(Date.now() / 1000) + (minutesValid * 60)
const decodedSharedAccessKey = cryptoJS.enc.Base64.parse(SharedAccessKey)
const hmacSignature = cryptoJS.HmacSHA256(resourceUri + "\n" + expiry, decodedSharedAccessKey)
const encodedSignature = encodeURIComponent(cryptoJS.enc.Base64.stringify(hmacSignature))
return `SharedAccessSignature sr=${resourceUri}&sig=${encodedSignature}&se=${expiry}&skn=${SharedAccessKeyName}`
}
Insert cell
example = generateAzureSasToken(HostName, SharedAccessKeyName, SharedAccessKey, 20)
Insert cell
cryptoJS = import('https://cdn.skypack.dev/crypto-js')
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more