0.0.3 • Published 7 years ago
@immutabl3/gatekey v0.0.3
gatekey
Authentication library for gatekey.io
Install
$ npm i @immutabl3/gatekeyUsage
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:getItemandsetItemwith 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:
0.0.3
7 years ago