Example: JavaScript
How to generate Vivox access tokens using JavaScript code.
Read time 1 minuteLast updated 20 hours ago
The following code is an example of how to generate access tokens in JavaScript.
/** Vivox Token Generation Example - JavaScript** NOTE: There are multiple ways to handle SHA-256 in JavaScript* Stanford JS Crypto Library - https://crypto.stanford.edu/sjcl/ (used below)* Source - http://bitwiseshiftleft.github.io/sjcl/sjcl.js* SHA256 from NPM - https://www.npmjs.com/package/sha256**/function vxGenerateToken(key, payload) { // Header is static - base64url encoded {} var base64urlHeader = base64URLEncode("{}"); // Can also be defined as a constant "e30" // Encode payload var base64urlPayload = base64URLEncode(payload); // Join segments to prepare for signing var segments = [base64urlHeader, base64urlPayload]; var toSign = segments.join("."); // Sign token with key and SHA-256 var hmac = new sjcl.misc.hmac(sjcl.codec.utf8String.toBits(key), sjcl.hash.sha256); signature = sjcl.codec.base64.fromBits(hmac.encrypt(toSign)); var base64urlSigned = signature.replace(/\+/g, "-").replace(/\//g, "_").replace(/\=+$/, ""); segments.push(base64urlSigned); return segments.join(".");}function base64URLEncode(value) { return Base64.encode(value).replace(/\+/g, "-").replace(/\//g, "_").replace(/\=+$/, "");}claims = { "iss": "issuer", "exp": 1559359105, "vxa": "join", "f": "sip:.username.@domain.vivox.com", "t": "sip:confctl-g-channelname@domain.vivox.com"};// Example usagevar token = vxGenerateToken("secret", claims);console.log(token);