Add (some) support for JWKs to node-jws
Switch branches/tags
Nothing to show
Clone or download
Latest commit 87e1b50 Apr 4, 2015

Dependency Status License

This project is deprecated. node-jws now accepts arbitrary keys (can add kid) and the JWK can be converted to PEM format easily with rsa-pem-from-mod-exp and the .shim() never worked right. We should submit a PR to node-jws to support JWK(S)


This is basically just node-jws augmented so that secretOrKey can be a JWK or set of JWKs.


$ npm install jws-jwk


var jws = require('jws-jwk');

var signature = getJWSFromSomwhere();
var jwk = { kid: '1234', kty: 'RSA', n: '12345...XYZ=', e: 'AQAB' };

if (jws.verify(signature, jwk)) {
  // Do stuff here, signature was verified using the JWK

Overriding node-jws

You might want to make it so when other code you are using does the following, the module in the variable jws is augmented.

var jws = require('jws');

One reason to do this is to make modules using node-jws work with JWKs, e.g. jsonwebtoken. Requiring node-jws-jwk like so will add its augmented functions to the node-jws module:

var jws = require('jws-jwk').shim();

In-Browser Usage

This module shims in jsrsasign when browserified to make jws.verify work in-browser (with JWKs and normally).


  1. node-jws
  2. JSON Web Key (JWK) Draft 31