@keyro/kl-sdk

1.0.6 • Public • Published

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.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.6
    0
    • latest

Version History

Package Sidebar

Install

npm i @keyro/kl-sdk

Weekly Downloads

0

Version

1.0.6

License

MIT

Unpacked Size

31.8 kB

Total Files

4

Last publish

Collaborators

  • 7hanith
  • bluer4v3n
  • vblitz