0.3.3 • Published 4 years ago

pico-jwt v0.3.3

Weekly downloads
95
License
MIT
Repository
github
Last release
4 years ago

pico-jwt

A pico size JWT module

Why?

  • Small footprint (184 LOC uncompressed)
  • Simple and easy
  • Minimum dependencies (ecdsa-sig-formatter)

Installation

npm i pico-jwt

Algorithms

This library supports most of the cryptographic algorithms for JWK:

alg Parameter ValueDigital Signature or MAC Algorithm
HS256HMAC using SHA-256 hash algorithm
HS384HMAC using SHA-384 hash algorithm
HS512HMAC using SHA-512 hash algorithm
RS256RSASSA using SHA-256 hash algorithm
RS384RSASSA using SHA-384 hash algorithm
RS512RSASSA using SHA-512 hash algorithm
PS256RSASSA-PSS using SHA-256 hash algorithm
PS384RSASSA-PSS using SHA-384 hash algorithm
PS512RSASSA-PSS using SHA-512 hash algorithm
ES256ECDSA using P-256 curve and SHA-256 hash algorithm
ES384ECDSA using P-384 curve and SHA-384 hash algorithm
ES512ECDSA using P-521 curve and SHA-512 hash algorithm

Please note that PSXXX only works on Node 6.12+ (excluding 7.x).

Test

npm test

Example

// import module
const pJWT = require('pico-jwt')

// instantiate the module
const jwt = new pJWT('HS256', 'secretKey')

// or with private and public keys
// const jwt = new pJWT('RS256', 'privateKey', 'publicKey')

// or with private and public files (absolute path only)
// const jwt = new pJWT('RS256', 'privateKeyPath', 'publicKeyPath')

// or add key files asynchronous (absolute path only)
// jwt.addKeys('privateKeyPath', 'publicKeyPath', () => {
//	console.log('loaded')
//})

// create jwt with payload
const token = jwt.create({
	iss: 'pico',
	hello: 'world'
}, {
	kid: 'custom-header-key-id'
})

// get header of jwt
const header = jwt.header(token) // or pJWT.prototype.header(token)

// get payload of jwt
const payload = jwt.payload(token) // or pJWT.prototype.payload(token)

// verify jwt
if (!jwt.verify(token)) {
	console.log('failed')
}

Debug Mode

Set DEBUG env variable to enable debug mode

0.3.2

4 years ago

0.3.1

4 years ago

0.3.3

4 years ago

0.3.0

4 years ago

0.2.3

5 years ago

0.2.2

6 years ago

0.2.1

6 years ago

0.2.0

6 years ago

0.1.0

6 years ago