ts-token-creator
Version:
25 lines (24 loc) • 1.15 kB
JavaScript
;
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;