0.0.3 • Published 7 years ago
@immutabl3/gatekey v0.0.3
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
andsetItem
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:
0.0.3
7 years ago