SaS token for Azure Event Hub - JSFiddle

Generate SaS token for Azure Event Hub

HTML

<script src="https://cdn.rawgit.com/vvasabi/btn710-a2/master/site/crypto-js-3.0.2/rollups/hmac-sha256.js"></script>
<script src="https://cdn.rawgit.com/vvasabi/btn710-a2/master/site/crypto-js-3.0.2/components/enc-base64.js"></script>
   
   <div><input type="text" id="txtNamespace" value="event hub namespace" onclick="this.value=''"/></div>
    <div><input type="text" id="txtHub" value="event hub" onclick="this.value=''"/></div>
    <div><input type="text" id="txtKeyName" value="hub policy name" onclick="this.value=''"/></div>
    <div><input type="text" id="txtKey" value="hub policy key" onclick="this.value=''"></div>
    <div><input type="button" value="Generate Authentication header" onclick="generate()"/></div>
    <div id="result"></div>

JavaScript

// Function which creates the Service Bus SAS token. 
var getToken = function (m_ServiceNamespace, entityPath, m_SasKeyName, m_SasKey) { 

        var uri = m_ServiceNamespace + 
        ".servicebus.windows.net/" + entityPath; 

        var endocedResourceUri = encodeURIComponent(uri); 

        var t0 = new Date(1970, 1, 1, 0, 0, 0, 0); 
        var t1 = new Date(); 
        var expireInSeconds =  + (31*24*3600) + 365*3600 + 
       (((t1.getTime() - t0.getTime()) / 1000) | 0); 

        var plainSignature = utf8Encode(endocedResourceUri + 
        "\n" + expireInSeconds); 

        var hash = CryptoJS.HmacSHA256(plainSignature, m_SasKey); 
        var base64HashValue = CryptoJS.enc.Base64.stringify(hash); 

        var token = "SharedAccessSignature sr=" + endocedResourceUri + "&sig=" + 
        encodeURIComponent(base64HashValue) + "&se=" + expireInSeconds + "&skn=" + 
        m_SasKeyName; 

        return token; 
    } 

   
    var utf8Encode = function (s) { 
        for (var c, i = -1, l = (s = s.split("")).length, 
            o = String.fromCharCode; ++i < l; 
            s = (c = s[0].charCodeAt(0)) >= 127 ? o(0xc0 | (c >>> 6)) + 
            o(0x80 | (c & 0x3f)) : s 
        ); 
        return s.join(""); 
    } 

    var generate = function()
    {
        var namespace = document.getElementById("txtNamespace").value;
        var hub = document.getElementById("txtHub").value;
        var keyName = document.getElementById("txtKeyName").value;
        var key = document.getElementById("txtKey").value;
        
        var result = getToken(namespace, hub, keyName, key);
        document.getElementById("result").innerText = result;
    }