JavaScript library that decodes JSON Web Tokens (JWT) jwt-js-decode the easy way
Works in:
- all modern browsers that support WebCrypto API
- Node.js using 'crypto' (default node-js lib)
- any other js env using 'crypto-browserify' (with require replacement to 'crypto'')
Install Jest using yarn
:
yarn add jwt-js-decode
Or via npm
:
npm i -S jwt-js-decode
import * as jwtJsDecode from 'jwt-js-decode';
or
const jwtJsDecode = require('jwt-js-decode');
or
<script src="//unpkg.com/jwt-js-decode@1.9.0/dist/jwt-js-decode.pkg.min.js"></script>
Other links you can find on yarn
P.S. For Webpack 5 browser bundling, there is need to add crypto fallback config (example stackblitz):
resolve: {
fallback: {
crypto: false,
},
},
Decode JWT token into {header: Object, payload: Object, signature: String}
import { decode } from 'jwt-js-decode';
let jwt = decode('token');
console.log(jwt.payload);
Verify JWT token with provided secret and decode it after
import { decode, verify } from 'jwt-js-decode';
verify('token', 'secret').then(res => {
if (res === true) {
const jwt = decode('token');
console.log(jwt.payload);
}
});
Resign JWT token with newSecret secret should be same type as jwt.header.alg
import { resign } from 'jwt-js-decode';
resign('token', 'newSecret').then(newToken => {
console.log(newToken);
});
Runkit (node.js sandbox 1.9.0) https://npm.runkit.com/jwt-js-decode
Plunkr (browser sandbox 1.9.0 + CodeMirror) https://plnkr.co/edit/WaawWXswkexfXaFfRDjQ
Plunkr (browser sandbox 1.9.0) https://plnkr.co/edit/zCNpiTXBbPKNxNVnHhkU
First you'll need to clone this repository to folder you will test it in.
Then insall all dependencies.
npm i
For testing functionality jest testing is used, npm test
script will rebuild dist and docs folder.
After changes in jwt-js-decode source and just for the first run use:
npm test
For sequential runs and just new test you can run:
npm run jest
TOC: