Skip to content

tomitribe/jwt-js-decode

Repository files navigation

jwt-js-decode

JavaScript library that decodes JSON Web Tokens (JWT) jwt-js-decode the easy way

Use cases

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'')

Getting Started

Install Jest using yarn:

yarn add jwt-js-decode

Or via npm:

npm i -S jwt-js-decode

Require lib

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,
  },
},

Usage

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);
    });

Sandboxes

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

Development

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:

About

JavaScript library that decodes JSON Web Tokens (JWT)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published