Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

webcrypto-jwt

pose271MIT0.2.2

JSON Web Tokens (JWT) verify/sign implementation using W3C Web Cryptography (crypto.subtle).

jwt, jsonwebtoken, w3c, webcrypto, crypto, crypto.subtle

readme

webcrypto-jwt

JSON Web Tokens (JWT) verify/sign implementation using W3C Web Cryptography (crypto.subtle).

Browser Support

The following browsers are supported without shims: IE TP, Firefox 35+ and Chrome 37+. Safari is not currently working. For more information about compatiblity check web cryptography browser support.

Install

With npm:

npm install webcrypto-jwt

or with bower:

bower install webcrypto-jwt

and then add the following script tag:

<script src="webcrypto-jwt/index.js"></script>

Usage

JWT verification and decoding:

var jwt = require('webcrypto-jwt');

// token signed using 'secret' as secret
var token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.' +
  'eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.' +
  'TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ';

jwt.verifyJWT(token, 'secret', 'HS256', function (err, isValid) {
  console.log(isValid); // true
});

jwt.verifyJWT(token, 'nosecret', 'HS256', function (err, isValid) {
  console.log(isValid); // false
});

jwt.decodeJWT(token); // '{"sub":"1234567890","name":"John Doe","admin":true}'

jwt.parseJWT(token) // Object {sub: "1234567890", name: "John Doe", admin: true}

JWT signing:

var signJWT = require('webcrypto-jwt').signJWT;

signJWT({foo: 'bar'}, 'secret', 'HS256', function (err, token) {
  // ey...
  console.log(token);
});

changelog

[0.2.1] - 2015-07-21

  • Fixed parseJWT when decodeJWT is not global. (Rodrigo Lopez Dato)

[0.2.0] - 2015-07-21

  • Added tests for utf-8 and emoji. (Alberto Pose)
  • Added parseJWT. Added tests for both parseJWT and decodeJWT. (Rodrigo Lopez Dato)

[0.1.0] - 2015-05-12

  • [7d53420] Fixing utf8 encoding/decoding. (Alberto Pose)
  • [2073332] Adding decodeJWT method. (Alberto Pose)
  • [58048fe] Removing unused functions. (Alberto Pose)
  • [ba7c492] Small style fixes (" -> ') (Alberto Pose)

[0.0.4] - 2015-04-25

  • [9d699a9] Adding crypto prefixes for IE and Safari. (Alberto Pose)
  • [9df42b7] Adding browser support notice. (Alberto Pose)
  • [aa8a581] Adding changelog. (Alberto Pose)

[0.0.3] - 2015-04-25

  • [8d5ef95] Throwing error when cb is not a function. (Alberto Pose)
  • [3258c39] Added documentation of JWT signing. (Alberto Pose)
  • [daf63a1] Adding commonjs support. (Alberto Pose)