Class: PersistentSession

PersistentSession(tokenInfo, tokenStoreopt, config, tokenManager)

A Persistent API Session has the ability to refresh its access token once it becomes expired. It takes in a full tokenInfo object for authentication. It can detect when its tokens have expired and will request new, valid tokens if needed. It can also interface with a token data-store if one is provided. Persistent API Session a good choice for long-running applications or web servers that must remember users across sessions.

Constructor

new PersistentSession(tokenInfo, tokenStoreopt, config, tokenManager)

Parameters:
Name Type Attributes Description
tokenInfo TokenInfo A valid TokenInfo object. Will throw if improperly formatted.
tokenStore TokenStore <optional>
A valid TokenStore object. Will throw if improperly formatted.
config Config The SDK configuration options
tokenManager TokenManager The token manager
Source:

Methods

exchangeToken(scopes, resourceopt, optionsopt) → {void}

Exchange the client access token for one with lower scope
Parameters:
Name Type Attributes Description
scopes string | Array.<string> The scope(s) requested for the new token
resource string <optional>
The absolute URL of an API resource to scope the new token to
options Object <optional>
Optional parameters
Properties
Name Type Attributes Description
tokenRequestOptions TokenRequestOptions <optional>
Sets optional behavior for the token grant
Source:
Returns:
Type
void

exchangeToken(scopes, resourceopt, optionsopt) → {void}

Exchange the client access token for one with lower scope
Parameters:
Name Type Attributes Description
scopes string | Array.<string> The scope(s) requested for the new token
resource string <optional>
The absolute URL of an API resource to scope the new token to
options Object <optional>
Optional parameters
Properties
Name Type Attributes Description
tokenRequestOptions TokenRequestOptions <optional>
Sets optional behavior for the token grant
Source:
Returns:
Type
void

getAccessToken(optionsopt) → {Promise.<string>}

Returns the clients access token. If tokens don't yet exist, first attempt to retrieve them. If tokens are expired, first attempt to refresh them.
Parameters:
Name Type Attributes Description
options TokenRequestOptions <optional>
Sets optional behavior for the token grant
Source:
Returns:
Promise resolving to the access token
Type
Promise.<string>

getAccessToken(optionsopt) → {Promise.<string>}

Returns the clients access token. If tokens don't yet exist, first attempt to retrieve them. If tokens are expired, first attempt to refresh them.
Parameters:
Name Type Attributes Description
options TokenRequestOptions <optional>
Sets optional behavior for the token grant
Source:
Returns:
Promise resolving to the access token
Type
Promise.<string>

handleExpiredTokensError(err) → {Promise.<Error>}

Handle an an "Expired Tokens" Error. If our tokens are expired, we need to clear the token store (if present) before continuing.
Parameters:
Name Type Description
err Errors~ExpiredTokensError An "expired tokens" error including information about the request/response.
Source:
Returns:
Promise resolving to an error. This will usually be the original response error, but could an error from trying to access the token store as well.
Type
Promise.<Error>

handleExpiredTokensError(err) → {Promise.<Error>}

Handle an an "Expired Tokens" Error. If our tokens are expired, we need to clear the token store (if present) before continuing.
Parameters:
Name Type Description
err Errors~ExpiredTokensError An "expired tokens" error including information about the request/response.
Source:
Returns:
Promise resolving to an error. This will usually be the original response error, but could an error from trying to access the token store as well.
Type
Promise.<Error>

revokeTokens(optionsopt) → {Promise}

Revokes the session's tokens. If the session has a refresh token we'll use that, since it is more likely to be up to date. Otherwise, we'll revoke the accessToken. Revoking either one will disable the other as well.
Parameters:
Name Type Attributes Description
options TokenRequestOptions <optional>
Sets optional behavior for the token grant
Source:
Returns:
Promise that resolves when the revoke succeeds
Type
Promise

revokeTokens(optionsopt) → {Promise}

Revokes the session's tokens. If the session has a refresh token we'll use that, since it is more likely to be up to date. Otherwise, we'll revoke the accessToken. Revoking either one will disable the other as well.
Parameters:
Name Type Attributes Description
options TokenRequestOptions <optional>
Sets optional behavior for the token grant
Source:
Returns:
Promise that resolves when the revoke succeeds
Type
Promise