@keyro/kl-sdk
v1.0.6
Published
Keyro Login SDK provides access to every KL public features out of the box.
Downloads
6
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.