/authenticator-client-mock-js

A simple mock authenticator client (JavaScript)

Primary LanguageJavaScript

Client Authenticator | Mock

A simple mock authenticator client, written in JavaScript.


Table of Contents

Introduction

The authenticator-client-mock-js is a simple client service, that mimics the common behaviors of HTTP-based authentication schemes. It does not transmit data over HTTP; it can be merely used for supporting offline/detached testing and development scenarios.

The implementation is designed to be compatible with the vuestrap-client-auth-support Authenticator interface.

How to Use

Install

with yarn:

$ yarn add authenticator-client-mock-js --dev

with npm:

$ npm install authenticator-client-mock-js --save-dev

Compatible with the Client Auth Support Vuestrap

For example:

import Vue from 'vue';
import store from './store'; // your vuex store instance
import router from './router'; // your vue-router instance
import MockAuthenticator from 'authenticator-client-mock-js';
import ClientAuthSupport from 'vuestrap-client-auth-support';

const MockAuth = new MockAuthenticator({ ttl: 5 * 60 * 1000 }); // expire session in 5 mins

Vue.use(ClientAuthSupport, {
  store,
  router,
  authenticator: MockAuth,
  persistType: 'local',
  tokenName: 'user-auth-token',
});

API

Constructor

Constructor Options

Name Required? Description
debug No Set to true to log debug messages during utilization. Defaults to false.
ttl No Defaults to 0 (expires immediately).

Instance

Instance Properties

Name Type Description
ttl Number The configured ttl before the generated token expires. (0 = expires immediately, -1 = never expires, <millis> = any positive integer)
state Object The mock state that is mutated for simulation purposes.

Instance Functions

All functions return Promises (except resetState).

Name Parameters Returns Description
authenticateUser creds = { username: <username>, password: <password> } { token: '<the_token>', expires_at: <timestamp_in_seconds> } Performs a mock authentication request, that always succeeds if a username is provided. When authentication is granted, the service returns a user auth token, with an expiration timestamp per the configured ttl.
expireUser token = '<the_token>' { success: true }
fetchUserInfo token = '<the_token>'
resetState (none) (void) Resets the instance state to the default values.

Errors

[TBC]

For Developers

Dev Lint

The plugin uses ESLint for source code linting. The linting will run automatically on git commit.

$ yarn lint

Dev Test

The plugin uses Mocha for the testing framework, and Chai for its assertions.

$ yarn test

Dev Build

The plugin is automatically built on yarn publish. But, you can manually build the plugin using:

$ yarn build-plugin