UNPKG

@terminus/ngx-tools

Version:

[![CircleCI][circle-badge]][circle-link] [![codecov][codecov-badge]][codecov-project] [![semantic-release][semantic-release-badge]][semantic-release] [![MIT License][license-image]][license-url] <br> [![NPM version][npm-version-image]][npm-url] [![Github

36 lines 3.65 kB
// Rewritten from https://github.com/auth0/jwt-decode/tree/master/lib to be typescript compliant // eslint-disable-next-line camelcase import { base64_url_decode } from './base64-url-decode'; export class InvalidTokenError { constructor(message) { this.message = message; } } // eslint-disable-next-line @typescript-eslint/no-explicit-any InvalidTokenError.prototype.name = 'InvalidTokenError'; /** * Decode JWT token * * @param token * @param options * @returns Token */ export function jwtDecode(token, options) { if (typeof token !== 'string') { throw new InvalidTokenError('Invalid token specified'); } options = options || {}; const pos = options.header === true ? 0 : 1; try { return JSON.parse(base64_url_decode(token.split('.')[pos])); } catch (e) { if (e instanceof Error) { throw new InvalidTokenError(`Invalid token specified: ${e.message}`); } else { throw e; } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LWRlY29kZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0ZXJtaW51cy9uZ3gtdG9vbHMvand0LyIsInNvdXJjZXMiOlsiand0LWRlY29kZS9qd3QtZGVjb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdHQUFnRztBQUNoRyxxQ0FBcUM7QUFDckMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHeEQsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixZQUFtQixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUFHLENBQUM7Q0FDdkM7QUFFRCw4REFBOEQ7QUFDN0QsaUJBQWlCLENBQUMsU0FBaUIsQ0FBQyxJQUFJLEdBQUcsbUJBQW1CLENBQUM7QUFHaEU7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBSSxLQUFhLEVBQUUsT0FBNEI7SUFDdEUsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsTUFBTSxJQUFJLGlCQUFpQixDQUFDLHlCQUF5QixDQUFDLENBQUM7S0FDeEQ7SUFFRCxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUN4QixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUMsSUFBSTtRQUNGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sQ0FBQztLQUNsRTtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsSUFBSSxDQUFDLFlBQVksS0FBSyxFQUFFO1lBQ3RCLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDdEU7YUFBTTtZQUNMLE1BQU0sQ0FBQyxDQUFDO1NBQ1Q7S0FDRjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBSZXdyaXR0ZW4gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vYXV0aDAvand0LWRlY29kZS90cmVlL21hc3Rlci9saWIgdG8gYmUgdHlwZXNjcmlwdCBjb21wbGlhbnRcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjYW1lbGNhc2VcbmltcG9ydCB7IGJhc2U2NF91cmxfZGVjb2RlIH0gZnJvbSAnLi9iYXNlNjQtdXJsLWRlY29kZSc7XG5cblxuZXhwb3J0IGNsYXNzIEludmFsaWRUb2tlbkVycm9yIHtcbiAgY29uc3RydWN0b3IocHVibGljIG1lc3NhZ2U6IHN0cmluZykge31cbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbihJbnZhbGlkVG9rZW5FcnJvci5wcm90b3R5cGUgYXMgYW55KS5uYW1lID0gJ0ludmFsaWRUb2tlbkVycm9yJztcblxuXG4vKipcbiAqIERlY29kZSBKV1QgdG9rZW5cbiAqXG4gKiBAcGFyYW0gdG9rZW5cbiAqIEBwYXJhbSBvcHRpb25zXG4gKiBAcmV0dXJucyBUb2tlblxuICovXG5leHBvcnQgZnVuY3Rpb24gand0RGVjb2RlPFQ+KHRva2VuOiBzdHJpbmcsIG9wdGlvbnM/OiB7aGVhZGVyPzogYm9vbGVhbn0pOiBUIHtcbiAgaWYgKHR5cGVvZiB0b2tlbiAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZFRva2VuRXJyb3IoJ0ludmFsaWQgdG9rZW4gc3BlY2lmaWVkJyk7XG4gIH1cblxuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgY29uc3QgcG9zID0gb3B0aW9ucy5oZWFkZXIgPT09IHRydWUgPyAwIDogMTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShiYXNlNjRfdXJsX2RlY29kZSh0b2tlbi5zcGxpdCgnLicpW3Bvc10pKSBhcyBUO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUb2tlbkVycm9yKGBJbnZhbGlkIHRva2VuIHNwZWNpZmllZDogJHtlLm1lc3NhZ2V9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG59XG4iXX0=