UNPKG

ts-token-creator

Version:
25 lines (24 loc) 1.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var CryptoJS = require("crypto-js"); var TokenCreator = /** @class */ (function () { function TokenCreator() { } TokenCreator.prototype.hmacSHA256 = function (tokenConfig, secret) { var encodedHeaderPlusPayload = this.createEncodedData(tokenConfig.header, tokenConfig.body); return encodedHeaderPlusPayload + "." + this.base64EncodeURL(CryptoJS.HmacSHA256(encodedHeaderPlusPayload, secret)); }; TokenCreator.prototype.createEncodedData = function (header, payload) { var strEncHeader = CryptoJS.enc.Utf8.parse(JSON.stringify(header)); var strEncPayload = CryptoJS.enc.Utf8.parse(JSON.stringify(payload)); return this.base64EncodeURL(strEncHeader) + "." + this.base64EncodeURL(strEncPayload); }; TokenCreator.prototype.base64EncodeURL = function (data) { return CryptoJS.enc.Base64.stringify(data) .replace(/=+$/, "") .replace(/\//g, "_") .replace(/\+/g, "-"); }; return TokenCreator; }()); exports.TokenCreator = TokenCreator;