jws-jwk

Adds (some) support for JWKs to node-jws

Usage no npm install needed!

<script type="module">
  import jwsJwk from 'https://cdn.skypack.dev/jws-jwk';
</script>

README

Dependency Status License

node-jws-jwk

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

Install

$ npm install jws-jwk

Example

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

References

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