UNPKG

rs-jwt

Version:

A really simple JSON Web Token reader.

34 lines (33 loc) 1.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const js_base64_1 = require("js-base64"); const split_token_1 = require("./split-token"); const jwt_1 = require("./jwt"); class RSJwt { parse(token) { const split = this.splitToken(token); return new jwt_1.Jwt(JSON.parse(this.decode(split.getHeader())), JSON.parse(this.decode(split.getPayload())), split.getSignature()); } splitToken(token) { const parts = token.split('.'); return new split_token_1.SplitToken(parts[0], parts[1], parts[2]); } decode(base64Url) { let base64 = this.toBase64(base64Url); base64 = this.addPadding(base64); return this.base64Decode(base64); } toBase64(base64Url) { return base64Url.replace('-', '+').replace('_', '/'); } addPadding(base64) { if (base64.length % 4 !== 0) { return this.addPadding(base64 + '='); } return base64; } base64Decode(base64) { return js_base64_1.Base64.decode(base64); } } exports.RSJwt = RSJwt;