@keyro/kl-sdk
v1.0.6
Published
Keyro Login SDK provides access to every KL public features out of the box.
Downloads
13
Readme
Keyro Login SDK
Keyro Login SDK provides access to every KL public features out of the box.
Install
yarn add '@keyro/kl-sdk'
Missing anything ?
We are still on a freshy-alpha release. As a keyro team member, if you need something lemme know
Usage
import KLSDK from '@keyro/kl-sdk'
/**
* Create an instance of the SDK and customize it with the following. Default configuration is hard-coded and
* rely on the definition of `production` option. Overriding both keyroLoginUrl and accessManagerUrl makes
* `production` value negligible.
* * `production` : use it to change default configuration.
* * `keyroLoginUrl` : override the default url
* * `accessManagerUrl` : override the default url
*/
const KL = KLSDK({
production: true, // Default: false
keyroLoginUrl: 'https://login-dev.keyro.fr',
accessManagerUrl: 'https://api.login.keyro.fr'
})
/**
* Takes you to the login page depending on your instance config.
* @param {String} origin Url you want to be redirected after login
*/
KL.signin(`${window.location.origin}/auth/callback`)
/**
* Takes you to the signout page depending on your instance config.
* @param {String} origin Url you want to be redirected after login
*/
KL.signout(`${window.location.origin}/byebye`)
/**
* Authentication expire after one hour. 15 minutes before expiration,
* `needRefresh` will encourage a refresh.
*
* Determine if you need to refresh your tokens
* @returns {Boolean}
*/
KL.needRefresh(store.session)
/**
* After a successful signin, Keyro Login will redirect to the origin
* you provide in `signin` method with a bunch of url encoded params.
* Using function `signinCallback` allow you to turn it into a proper session entity.
*
* Take a queryParams object and format it into a session entity
* @returns {Object} Session
*/
KL.signinCallback(this.$route.query)
/**
* Invalidate all tokens of your session causing your device to
* disconnet from all Keyro apps.
* @param {Object} session A session entity
*/
KL.globalSignout(store.session)
/**
* Entrust your session to be valid against the OAUTH Authorization Provider
* Of Keyro Login.
* @param {Object} session A session entity
* @returns {Boolean}
*/
KL.isSessionValid(store.session)
/**
* While your refresh token hasn't expired, you can call this method to get a new
* AccessToken and a new IdentityToken.
*
* Provide an updated Session entity with a new Access and identity tokens.
* @param {Object} session a Session entity
* @returns {Object} Session Entity
*/
KL.refreshSession(session)
/**
* A good way to ensure control over your credentials data is to entrust them as a Session entity.
* @param {Object} data representing Session entity
* @returns {Object} Session Entity
*/
KL.makeSession(data)
The session entity
To be a valid session entity a JSON structure must be of the following structure :
{
"identityToken": "(Mandatory) string",
"accessToken": "(Mandatory) string",
"refreshToken": "(Mandatory) string",
"expiresIn": "(At least one) seconds integer",
"expiresAt": "(At least one) date string"
}
If you pass an expiresIn
value, kl-sdk will parse it as an expiredAt
for you.