1.0.6 • Published 5 years ago

@keyro/kl-sdk v1.0.6

Weekly downloads
2
License
MIT
Repository
-
Last release
5 years ago

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.

1.0.6

5 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago

0.2.10

6 years ago

0.2.9

6 years ago

0.2.8

6 years ago

0.2.7

6 years ago

0.2.6

6 years ago

0.2.5

6 years ago

0.2.4

6 years ago

0.2.3

6 years ago

0.2.2

6 years ago

0.2.1

6 years ago

0.2.0

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago

0.0.14

6 years ago