jwt-generator

3.1.0 • Public • Published

Home Automation - JSON Web Token (JWT) Generator

This package is being used by the home automation project. The package generates 'JSON Web Token' (JWT) by using the API of the authentication server.

NPM version Build Status Test Coverage Dependencies DevDependencies JavaScript Style Guide

Installation (via npm)

$ npm install --save jwt-generator

Usage

The package supports ES5 or later. The example below is using ES6 features.
Here you can find instructions on how to generate private & public keys.

const JWTGenerator = require('jwt-generator')
 
// const jwtGenerator = new JWTGenerator({loginUrl: <url>, privateKey: <privateKey>, useRetry: <use retry>, issuer: <issuer>})
const jwtGenerator = new JWTGenerator({loginUrl: 'https://auth.domain.com', privateKey: '<privateKey>', useRetry: true, issuer: 'urn:home-automation/garage-door-raspberry-client'})
 
// jwtGenerator.makeNewToken({subject: <subject>, audience: <audience>, payload: <payload>, expiresIn: <expires (seconds)>})
jwtGenerator.makeNewToken({subject: 'report garage door state', audience: 'urn:home-automation/garage-door-api', payload: {"name": "John Doe", "admin": true}, expiresIn: 60})
  .then((token) => {
    // JWT generated by the authentication server.
  })
 
// jwtGenerator.makeToken({subject: <subject>, audience: <audience>, payload: <payload>, expiresIn: <expires (seconds)>})
jwtGenerator.makeToken({subject: 'report garage door state', audience: 'urn:home-automation/garage-door-api', payload: {"name": "John Doe", "admin": true}, expiresIn: 60})
.then((token) => {
  // JWT generated by the authentication server.
})
 

The difference between makeToken and makeNewToken is that the former may re-use existing token that has been stored in the cached, while the latter will always generate new token by calling the authentication server.

License

AGPL-3.0

Author

Oron Nadiv (oron@nadiv.us)

Readme

Keywords

none

Package Sidebar

Install

npm i jwt-generator

Weekly Downloads

3

Version

3.1.0

License

AGPL-3.0

Unpacked Size

59.6 kB

Total Files

7

Last publish

Collaborators

  • oronnadiv