UNPKG

@xeedware/cognito-jwt

Version:

AWS Cognito AccessToken and IdToken classes.

92 lines 2.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.JsonWebToken = void 0; const jwt = require('jsonwebtoken'); class JsonWebToken { /** * Constructs a new CognitoJwtToken object * @param {string} token The JWT token. * @param {string} [pem] * @param {VerifyOptions} [options] */ constructor(token, pem, options = {}) { this.token = token; this.pem = pem; this.options = options; this.header = {}; this.payload = {}; this.signature = ''; options.complete = true; let decodedToken; if (pem) { try { decodedToken = jwt.verify(token, pem, options); } catch (e) { // Convert jsonwebtoken package's JsonWebTokenError, NotBeforeError or TokenExpiredError // to a standard Error that has only a name and message properties. const error = new Error(e.message); error.name = e.name; throw error; } } else { // decodedToken = jwt.decode(this.token, {json: true, complete: true}); decodedToken = jwt.decode(this.token, options); if (!decodedToken) { throw new Error('Invalid or expired token.'); } } this.header = decodedToken.header; this.payload = decodedToken.payload; this.signature = decodedToken.signature; } getJwtPayload() { return this.payload; } /** * Get the JWT payload * @returns {Object} */ getPayload() { return this.payload; } /** * Get the encoded JSON Web Token string. * * @deprecated since version 1.2.0. * Will be deleted in version 2.0.0. * Use getToken() instead. * * @returns {string} the record's token. */ getJwtToken() { return this.token; } /** * Get the encoded JSON Web Token string. * @returns {string} the record's token. */ getToken() { return this.token; } /** * Get decoded header. * @returns {string} */ getHeader() { return this.header; } /** * Get decoded signature. * @returns {string} */ getSignature() { return this.signature; } getPropertyValue(propertyName) { return this.payload[propertyName]; } } exports.JsonWebToken = JsonWebToken; //# sourceMappingURL=JsonWebToken.js.map