@immutabl3/gatekey

0.0.3 • Public • Published

gatekey

Authentication library for gatekey.io

Install

$ npm i @immutabl3/gatekey

Usage

Basics

Instantiating gatekey takes an options configuration object and returns a promise

import gatekey from '@immutabl3/gatekey';

gatekey({
  // prevent redirecting so that we can see the error in catch
  redirect: false
})
  .then(results => {
    // results = {token: '', redirect: fn, payload: {}}
  })
  .catch(error => {
    // the error that occurred when authenticating
  });

Options

You can pass these options at instantiation.

gatekey(
  // options
  {
    redirect: false
  }
);
  • key string [gatekey]: what key to store validation value under
  • secure boolean [true]: if the page is required to be loaded over 'https'
  • redirect boolean [true]: if the page should be redirected on failure
  • alwaysValidate boolean [false]: whether the page should always be validated on load. Default behavior is to randomly retry if the page has already been authenticated
  • expiration number [43200000]: ms after page when validation is no longer valid. After this duration, the page will be validated on next load. Defaults to 12 hours.
  • retryChance number [0.1]: the percent chance that a validated page load will revalidate. This is to prevent alterations to the store giving permenant access.
  • store object [sessionStore]: the store used to the validation value. This object can be replaced as long as it implements two methods: getItem and setItem with behavior following sessionStore.
  • fallbackToMemoryStore boolean [true]: if the store is unavailble, should gatekey fallback to an in-memory store. Local and session storage may be unavailable in incognito modes.

Results

After instantiation, gatekey provides an object.

gatekey()
  .then(results => {
    // results = {token: '', redirect: fn, payload: {}}
  });
  • token string: the JWT used to authorize access
  • redirect function: a redirect function that will redirect the page to the custom error page. Takes an optional error as a parameter.
  • payload object: the deserialized JSON payload from the JWT

Support

Uses fetch and Object.assign. If older browser (or IE 11) support is required, polyfills are available:

Readme

Keywords

Package Sidebar

Install

npm i @immutabl3/gatekey

Weekly Downloads

2

Version

0.0.3

License

none

Unpacked Size

10.4 kB

Total Files

15

Last publish

Collaborators

  • immutabl3