Skip to content

JSON Object Signing and Encryption for Node.js and the browser

License

Notifications You must be signed in to change notification settings

nodeSolidServer/jose

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Sep 4, 2022
94ba5f5 · Sep 4, 2022
Oct 29, 2019
Sep 3, 2022
Sep 3, 2022
May 24, 2018
Aug 25, 2018
Jul 29, 2020
Nov 8, 2019
Nov 1, 2019
Nov 8, 2019
Jun 22, 2016
Sep 4, 2022
Sep 4, 2022
Oct 30, 2019

Repository files navigation

JSON Object Signing and Encryption (JOSE) (@solid/jose)

Lightweight isomorphic JSON Object Signing and Encryption (JOSE) library for browser and Node.js

Table of Contents

Security

TBD

Background

  • Based on Webcrypto API
  • Isomorphic (Node.js and Browser)

Install

Requires Node.js 8+.

npm install @solid/jose

Usage

Building with Webpack

Important: If you're using this library as a dependency and you plan to use Webpack, don't forget to add the following lines to your webpack.config.js externals: section:

  externals: {
    '@sinonjs/text-encoding': 'TextEncoder',
    'isomorphic-webcrypto': 'crypto'
  }

In Node

const { JWT } = require('@solid/jose')

const decoded = JWT.decode(data) // throws an error if invalid

In Browser

If you npm install @solid/jose as a dependency, the Webpack'd minified bundle will be available in the dist/ directory as jose.min.js.

If you're actively developing/testing this lib, you can npm run dist, and the bundle will be rebuilt.

To use in the browser, simply import the bundle in a <script> tag, and the lib will be loaded into the window.JOSE global variable.

Example test.html file, to illustrate:

<html>
<head>
  <script src="dist/jose.min.js"></script>
  <script>
    // You can now start using the library
    let jwt = new JOSE.JWT({
      header: { alg: 'HS256' },
      payload: { iss: 'https://forge.anvil.io' }
    })
  </script>
</head>
<body>
Sample usage of JOSE lib in a browser.
</body>
</html>

Testing

Nodejs

$ npm test

License

The MIT License

Copyright (c) 2016 Anvil Research, Inc. Copyright (c) 2017-2019 The Solid Project