Skip to main content

Class: Credential

Wrapper around a Token, providing methods to interact with Tokens without the hassle of managing them

Constructors

new Credential()

new Credential(token, client): Credential

Parameters

token: Token

client: OAuth2Client

Returns

Credential

Remarks

Do not use directly, use Credential.store instead

Factory Methods

store()

static store(token, tags): Credential

Writes token to storage and returns a Credential instance

Parameters

token: Token

Object representing the token to be managed by returned Credential instance

tags: string[] = []

List of strings that can be used to ease Credential retrieval

Returns

Credential

Example

const adminToken = await fetchAdminToken();
const token = new Token(adminToken);
Credential.store(token, ['admin']);

See

Credential.findByTags | Credential.findByTags

Static Accessors

default

get static default(): null | Credential

set static default(cred): void

Parameters

cred: null | Credential

Returns

null | Credential


allIDs

get static allIDs(): string[]

Returns array of all Credential ids

Returns

string[]


size

get static size(): number

Returns number of Credential instances

Returns

number

Static Methods

with()

static with(id): null | Credential

Returns Credential instance with corresponding id

Parameters

id: string

Returns

null | Credential

Remarks

This method can be used to retreive a specific Credential, however its recommended to use Credential.default or Credential.find to query by tags instead


find()

static find(matcher): Credential[]

Returns all Credential instances where matcher function returns true

Parameters

matcher

Function which takes meta as first argument. Returns true if Credential should be included. false otherwise

Returns

Credential[]

Example

// find Credentials by tag 'foo'
Credential.find(meta => meta?.tags?.includes('foo'));

clear()

static clear(): void

Removes all Credential instances and clears storage

Returns

void


isEqual()

static isEqual(lhs, rhs): boolean

Compares 2 Credential instances to determine if they represent the same token

Parameters

lhs: Credential

rhs: Credential

Returns

boolean

Events

on()

static on(event, callback): void

Bind an event listener

Parameters

event: string

event name

callback

event handler

Returns

void

Example

Credential.on(Events.CREDENTIAL_REFRESHED, credential => {
// do something with credential
});

See

Events


off()

static off(event, callback?): void

Removes active event listeners

Parameters

event: string

event name

callback?

the event handler previously bound via Credential.on

Returns

void

Example

Credential.off(Events.CREDENTIAL_REFRESHED);

See

Events

Properties

emitter

protected readonly static emitter: CredentialEventEmitter

Accessors

oauth2

get oauth2(): OAuth2Client

Returns instance of OAuth2Client used to construct Credential

Returns

OAuth2Client


token

get token(): Token

The Token instance Credential is associated with

Remarks

This value may change, from operations like renew, however the Token.id | Token.id will remain consistent

Returns

Token


id

get id(): string

Short for this.token.id

Returns

string


tags

get tags(): string[]

Array of tags associated with Credential. Used for retrieval

Returns

string[]

Methods

setTags()

setTags(tags): void

Updates tags associated with Credential

Parameters

tags: string[] = []

tags to be associated with Credential

Returns

void

Remarks

This is not merge operation


remove()

remove(): void

Removes Credential from storage

Returns

void

Remarks

NOTE: this method does not revoke tokens

See

Credential.prototype.revoke


getAuthHeader()

getAuthHeader(): object

Helper method to get a Authorization header, expressed as an object

Returns

object

Authorization

Authorization: string

Examples

cred.getAuthHeader();
// { 'Authorization': 'Bearer ***********' }
const data = await fetch('resource/server', { headers: { ...cred.getAuthHeader() }})

authorize()

authorize(input, init?): Promise<Request>

A utility method which matches the signature of fetch a Request instance with a predefined Authorization header

Parameters

input: string | URL | Request

init?: RequestInit

Returns

Promise<Request>


toJSON()

toJSON(): Record<string, any>

Returns

Record<string, any>

OAuth2 Methods

refresh()

refresh(): Promise<Credential>

Attempts to refresh the represented token

Returns

Promise<Credential>

Remarks

Upon successful renew, the token will be replaced with a new Token instance, however the id property will remain consistent

Throws

OAuth2Error if refresh fails


refreshIfNeeded()

refreshIfNeeded(gracePeriod): Promise<Credential>

Renews token if the will expire within the grace period

Parameters

gracePeriod: number = 30

Returns

Promise<Credential>

Remarks

Expiration calculation is performed on the browser via TimeCoordinator

Throws

OAuth2Error if refresh fails


revoke()

revoke(type): Promise<undefined | OAuth2ErrorResponse>

Revokes either Token.accessToken | Credential.token.accessToken or Token.refreshToken | Credential.token.refreshToken or both

Parameters

type: RevokeType = 'ALL'

Returns

Promise<undefined | OAuth2ErrorResponse>

Remarks

Throws

OAuth2Error if revocation fails


introspect()

introspect(kind): Promise<void>

COMING SOON Performs introspect on a specific token

Parameters

kind: TokenKind

The specific token to introspect. Must be available in Credential.token

Returns

Promise<void>

Throws

OAuth2Error


userInfo()

userInfo(): Promise<void>

COMING SOON Performs OIDC UserInfo request

Returns

Promise<void>

Throws

OAuth2Error