kopitech-authentication-client

1.0.8 • Public • Published

Kopitech Authentication Client

A client library for authenticating access token using the kopitech authenticator service.

Installation

Using npm: npm install --save kopitech-authentication-client

Usage

const authenticationClient = require('kopitech-authentication-client');

expressApp.get(
  '/',
  authenticator.authenticationClient,
  (req, res) => {
    const { sub, typ } = req.accessor;
    console.log('Request Authenticated for ${sub} of type ${typ}`);
    res.send('ok');
  },
);

Config

enabled (BOOLEAN: default true) - Whether authentication should be enabled

verifyUrl (STRING) - Kopitech Authenticator Service Verify URL

noAuthSubject (STRING: default noauthsub) - Subject ID used when Authentication is disabled

noAuthType (STRING: default client) - Subject Type used when Authentication is disabled

logEnabled (BOOLEAN: default true) - Whether to log

logConfig (BOOLEAN: default false) - Whether to log config upon changes

Environment Variable

AUTHENTICATION_ENABLED (BOOLEAN: default true) - Whether authentication should be enabled

AUTHENTICATION_VERIFY_URL (STRING) (env AUTHENTICATION_VERIFY_URL) - Kopitech Authenticator Service Verify URL

AUTHENTICATION_NO_AUTH_SUBJECT (STRING: default noauthsub) - Subject ID used when Authentication is disabled

AUTHENTICATION_NO_AUTH_TYPE (STRING: default client) - Subject Type used when Authentication is disabled

AUTHENTICATION_LOG_ENABLED (BOOLEAN: default true) - Whether to log

AUTHENTICATION_LOG_CONFIG (BOOLEAN: default false) - Whether to log config upon changes

LOGGING_ENABLED (BOOLEAN default: true) - Whether authentication should be enabled

LOGGING_LEVEL (BOOLEAN default: info) - Log level to be used (debug, info, warn, error)

Available Functions

Configure

authenticationClient#configure(config)

Configuration

{
  enabled: true,
  verifyUrl: http://localhost:8080/auth/verify,

  noAuthSubject: 'noauthsub',
  noAuthType: 'client',

  logEnabled: true,
  logConfig: false
}

Authenticate

authenticationClient#authenticate(accessToken)

Returned data

{
  ok: true, // Access Token is validated
  payload: {
    sub: 'subject', // Authenticated Subject
    typ: 'client', // Authenticated Type
  }
}

Express Authenticate

Express controller to authenticate request (Authorization Bearer Header)

authenticationClient#expressAuthenticate

Express controller will:

  • proceed with next() called if authenticated
  • respond with 401 Unauthorized if not authenticated

Additional request fields:

accessor: {
  sub: 'subject', // Authenticated Subject
  typ: 'client', // Authenticated Type
}

Contributions

Contributions to the Library are welcomed.

Package Sidebar

Install

npm i kopitech-authentication-client

Weekly Downloads

10

Version

1.0.8

License

ISC

Unpacked Size

7.24 kB

Total Files

3

Last publish

Collaborators

  • yeehuipoh