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
Remarks
Do not use directly, use Credential.store instead
Factory Methods
store()
staticstore(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
Example
const adminToken = await fetchAdminToken();
const token = new Token(adminToken);
Credential.store(token, ['admin']);
See
Credential.findByTags | Credential.findByTags
Static Accessors
default
getstaticdefault():null|Credential
setstaticdefault(cred):void
Parameters
• cred: null | Credential
Returns
null | Credential
allIDs
getstaticallIDs():string[]
Returns array of all Credential ids
Returns
string[]
size
getstaticsize():number
Returns number of Credential instances
Returns
number
Static Methods
with()
staticwith(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()
staticfind(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
Example
// find Credentials by tag 'foo'
Credential.find(meta => meta?.tags?.includes('foo'));
clear()
staticclear():void
Removes all Credential instances and clears storage
Returns
void
isEqual()
staticisEqual(lhs,rhs):boolean
Compares 2 Credential instances to determine if they represent the same token
Parameters
• lhs: Credential
• rhs: Credential
Returns
boolean
Events
on()
staticon(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
off()
staticoff(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
Properties
emitter
protectedreadonlystaticemitter:CredentialEventEmitter
Accessors
oauth2
getoauth2():OAuth2Client
Returns instance of OAuth2Client used to construct Credential
Returns
OAuth2Client
token
gettoken():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
getid():string
Short for this.token.id
Returns
string
tags
gettags():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
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
- If
RevokeType.ALL, Credential will be removed
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