Nauseating Pumpkin Mush

    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.

    Install

    npm i kopitech-authentication-client

    DownloadsWeekly Downloads

    10

    Version

    1.0.8

    License

    ISC

    Unpacked Size

    7.24 kB

    Total Files

    3

    Last publish

    Collaborators

    • yeehuipoh