Authentication

    Authentication


    Article summary


    title: Authentication

    version: 0.8.1
    layout: default
    sdk: core

    # Authentication Module

    Version 0.8.1

    Overview

    A module for acquiring authentication tokens.

    OpenRPC

    Firebolt APIs are maintained in the rdkcentral/firebolt-core-sdk GitHub repository.

    You can see this API in the authentication.json OpenRPC JSON-Schema document.

    Table of Contents

    Usage

    To use the Authentication module, you can import it into your project from the Firebolt SDK:

    import { Authentication } from '@firebolt-js/sdk'
    

    Methods

    token

    Get a specific type of authentication token

    function token(type: TokenType, options?: object): Promise<object>
    

    Parameters:

    ParamTypeRequiredSummary
    typeTokenTypetrueWhat type of token to get
    optionsobjectfalseAdditional options for acquiring the token.

    Promise resolution:

    the token value, type, and expiration

    FieldTypeDescription
    valuestring
    expiresstring
    typestring

    Examples

    Acquire a Firebolt platform token

    JavaScript:

    import { Authentication } from '@firebolt-js/sdk'
    
    Authentication.token("platform", null)
        .then(token => {
            console.log(token)
        })
    

    Value of token:

    {
      "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
      "expires": "2022-04-23T18:25:43.511Z",
      "type": "platform"
    }
    
    JSON-RPC:

    Request:

    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "authentication.token",
      "params": {
        "type": "platform"
      }
    }
    

    Response:

    {
      "jsonrpc": "2.0",
      "id": 1,
      "result": {
        "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
        "expires": "2022-04-23T18:25:43.511Z",
        "type": "platform"
      }
    }
    
    More examples...Acquire a Firebolt device identity (XACT) token

    JavaScript:

    import { Authentication } from '@firebolt-js/sdk'
    
    Authentication.token("device", null)
        .then(token => {
            console.log(token)
        })
    

    Value of token:

    {
      "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
      "expires": "2022-04-23T18:25:43.511Z",
      "type": "device"
    }
    
    JSON-RPC:

    Request:

    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "authentication.token",
      "params": {
        "type": "device"
      }
    }
    

    Response:

    {
      "jsonrpc": "2.0",
      "id": 1,
      "result": {
        "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
        "expires": "2022-04-23T18:25:43.511Z",
        "type": "device"
      }
    }
    

    Acquire a Firebolt distributor token

    JavaScript:

    import { Authentication } from '@firebolt-js/sdk'
    
    Authentication.token("distributor", {"clientId":"xyz"})
        .then(token => {
            console.log(token)
        })
    

    Value of token:

    {
      "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
      "expires": "2022-04-23T18:25:43.511Z",
      "type": "distributor",
      "data": {
        "tid": "EB00E9230AB2A35F57DB4EFDDC4908F6446D38F08F4FF0BD57FE6A61E21EEFD9",
        "scope": "scope"
      }
    }
    
    JSON-RPC:

    Request:

    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "authentication.token",
      "params": {
        "type": "distributor",
        "options": {
          "clientId": "xyz"
        }
      }
    }
    

    Response:

    {
      "jsonrpc": "2.0",
      "id": 1,
      "result": {
        "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
        "expires": "2022-04-23T18:25:43.511Z",
        "type": "distributor",
        "data": {
          "tid": "EB00E9230AB2A35F57DB4EFDDC4908F6446D38F08F4FF0BD57FE6A61E21EEFD9",
          "scope": "scope"
        }
      }
    }
    

    Schemas

    TokenType

    type TokenType = 'platform' | 'device' | 'distributor'
    


    Was this article helpful?

    What's Next