@xeedware/cognito-jwt
Version:
AWS Cognito AccessToken and IdToken classes.
92 lines • 2.54 kB
JavaScript
;
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