@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.

    Keywords

    none

    Install

    npm i @keyro/kl-sdk

    DownloadsWeekly Downloads

    0

    Version

    1.0.6

    License

    MIT

    Unpacked Size

    31.8 kB

    Total Files

    4

    Last publish

    Collaborators

    • 7hanith
    • bluer4v3n
    • vblitz