Skip to main content
Version: 0.7.0

Authentication Module


Version 0.8.0

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'