0.0.3 • Published 7 years ago

@immutabl3/gatekey v0.0.3

Weekly downloads
-
License
-
Repository
-
Last release
7 years ago

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: