2025-05-28 15:36:51 -07:00

27 lines
680 B
JavaScript

'use strict';
var base64_url_decode = require('./base64_url_decode');
function InvalidTokenError(message) {
this.message = message;
}
InvalidTokenError.prototype = new Error();
InvalidTokenError.prototype.name = 'InvalidTokenError';
module.exports = function (token,options) {
if (typeof token !== 'string') {
throw new InvalidTokenError('Invalid token specified');
}
options = options || {};
var pos = options.header === true ? 0 : 1;
try {
return JSON.parse(base64_url_decode(token.split('.')[pos]));
} catch (e) {
throw new InvalidTokenError('Invalid token specified: ' + e.message);
}
};
module.exports.InvalidTokenError = InvalidTokenError;