Decode, sign/resign or verify JSON Web Tokens (JWT). Works in majority of modern browsers, Node.js and other JavaScript runtimes.
npm install jwt-js-decodeJavaScript 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:
``bash`
yarn add jwt-js-decode
Or via npm:
`bash`
npm i -S jwt-js-decode
`javascript`
import * as jwtJsDecode from 'jwt-js-decode';
or
`javascript`
const jwtJsDecode = require('jwt-js-decode');
or
`html`
Other links you can find on yarn
P.S. For Webpack 5 browser bundling, there is need to add crypto fallback config (example stackblitz):
`javascript`
resolve: {
fallback: {
crypto: false,
},
},
Decode JWT token into {header: Object, payload: Object, signature: String}
`javascript
import { decode } from 'jwt-js-decode';
let jwt = decode('token');
console.log(jwt.payload);
`
Verify JWT token with provided secret and decode it after
`javascript`
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
`javascript
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.
`bash`
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:
`bash`
npm test
For sequential runs and just new test you can run:
`bash``
npm run jest
TOC: