Skip to content
This repository has been archived by the owner on Mar 6, 2020. It is now read-only.

ministryofjustice/fb-jwt-client-node

Repository files navigation

Form Builder JSON Web Token client (Node)

Base client for making requests to Form Builder platform endpoints that require JSON Web Tokens for authenctication

Requirements

Node

Installation

npm install @ministryofjustice/fb-jwt-client-node

Usage

Loading and initialising basic client

// load client class
const FBJWTClient = require('@ministryofjustice/fb-jwt-client-node')

// initialise client
const jwtClient = new FBJWTClient(serviceSecret, serviceToken, serviceSlug, microserviceUrl, [errorClass])

serviceSecret

Constructor will throw an error if no service secret is passed

serviceToken

Constructor will throw an error if no service token is passed

serviceSlug

Constructor will throw an error if no service slug is passed

microserviceUrl

Constructor will throw an error if no service url is passed

errorClass

By default, uses FBJWTClientError

Extending

// extend base class
class FBMyClient extends FBJWTClient {
  constructor (serviceSecret, serviceToken, serviceSlug, microserviceUrl, myVar) {
    super(serviceSecret, serviceToken, serviceSlug, microserviceUrl)
    // do something with additional constructor argument
    this.myVar = myVar
  }
}

const myClient = new FBMyClient('service_secret', 'service_token', 'myservice', 'http://myservice', 'my var')
// extend base class with custom error
class FBAnotherClient extends FBJWTClient {
  constructor (serviceSecret, serviceToken, serviceSlug, microserviceUrl) {
    // create custom error class
    class FBAnotherClientError extends FBJWTClient.prototype.ErrorClass {}
    super(serviceSecret, serviceToken, serviceSlug, microserviceUrl, FBAnotherClientError)
  }
}

Methods

  • generateAccessToken

    Generate JWT access token

  • createEndpointUrl

    Return user-specific endpoint

  • sendGet

    Handle client get requests

  • sendPost

    Handle client post requests

  • encrypt

    Encrypt data with AES 256

  • decrypt

    Decrypt data

  • encryptUserIdAndToken

    Encrypt user ID and token using service secret

  • decryptUserIdAndToken

    Decrypt user ID and token using service secret

  • handleRequestError

    Handle client response errors

  • createRequestOptions

    Create request options

  • throwRequestError

    Convenience function for throwing errors

Further details

See documentation in code for further details and fb-user-datastore-client-node and fb-submitter-client-node for examples.

About

Form Builder JSON Web Token Client (Node)

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages