const crypto = require("crypto")
// In seconds - week
const EXPIRES_IN = 60*60*24*7;
// In seconds - 100 years
// const EXPIRES_IN = 31536000 * 100;
function createSharedAccessToken(uri, saName, saKey) {
if (!uri || !saName || !saKey) {
throw "Missing required parameter";
}
var encoded = encodeURIComponent(uri);
var now = new Date();
var ttl = Math.round(now.getTime() / 1000) + EXPIRES_IN;
var signature = encoded + '\n' + ttl;
var hash = crypto.createHmac('sha256', saKey).update(signature, 'utf8').digest('base64');
return 'SharedAccessSignature sr=' + encoded + '&sig=' + encodeURIComponent(hash) + '&se=' + ttl + '&skn=' + saName;
}
const uri = "" // Endpoint
const saName = "" // SAP Name
const saKey = "" // Primary or Secondary Key
console.log(
createSharedAccessToken(uri, saName, saKey)
);