Skip to main content

OAuth2Client

@auvious/common / Exports / OAuth2Client

Class: OAuth2Client

oauth2 client implementation for auvious' services.

At the moment a login method with the password grant is supported.

More info: https://alexbilbie.com/guide-to-oauth-2-grants

Hierarchy

Table of contents

Constructors

Properties

Accessors

Methods

Constructors

constructor

new OAuth2Client(clientId, clientSecret, serverUrl?, saveTokenOnLocalStorage?, eventHandlers?, useStandardOAuth2?)

Parameters

NameTypeDefault value
clientIdstringundefined
clientSecretstringundefined
serverUrlstring"/"
saveTokenOnLocalStoragebooleantrue
eventHandlersOAuth2ClientHandlersnull
useStandardOAuth2booleanfalse

Overrides

EventFiringClient<OAuth2ClientHandlers\>.constructor

Properties

GUEST_ROUTE

GUEST_ROUTE: string = "/security/guest"


LOGIN_ROUTE

LOGIN_ROUTE: string = "/security/authenticate/login"


TOKEN_STORAGE_KEY

TOKEN_STORAGE_KEY: string = "auvious.oauth2.client.token"


_clientId

Private _clientId: string


_clientSecret

Private _clientSecret: string


_eventHandlers

Protected _eventHandlers: OAuth2ClientHandlers

Inherited from

EventFiringClient._eventHandlers


_postman

Private _postman: Postman


_realEventHandlers

Protected _realEventHandlers: any

Inherited from

EventFiringClient._realEventHandlers


_saveTokenOnLocalStorage

Private _saveTokenOnLocalStorage: boolean


_token

Private _token: IOAuth2Token


_useStandardOAuth2

Private _useStandardOAuth2: boolean


log

Protected log: Logger

Inherited from

EventFiringClient.log


preemptiveTokenRefreshTask

Private preemptiveTokenRefreshTask: any


refreshTokenProviderFn

Private refreshTokenProviderFn: (refreshToken: any) => Promise<IJwtTokenResponse>

Type declaration

▸ (refreshToken): Promise<IJwtTokenResponse>

Parameters
NameType
refreshTokenany
Returns

Promise<IJwtTokenResponse>


tokenProviderFn

Private tokenProviderFn: () => Promise<IJwtTokenResponse>

Type declaration

▸ (): Promise<IJwtTokenResponse>

Returns

Promise<IJwtTokenResponse>


CLIENT_ID

Static Private CLIENT_ID: string = "auvious"


OAUTH2_TOKEN_ROUTE

Static OAUTH2_TOKEN_ROUTE: string = "/security/oauth/token"


TOKEN_REFRESH_ROUTE

Static TOKEN_REFRESH_ROUTE: string = "/security/authenticate/refresh"

Accessors

_defaultHandlers

Protected get _defaultHandlers(): OAuth2ClientHandlers

Returns

OAuth2ClientHandlers

Overrides

EventFiringClient._defaultHandlers


clientId

get clientId(): string

Gets the oauth2 client id.

Returns

string


clientSecret

get clientSecret(): string

Gets the oauth2 client secret.

Returns

string


isAuthenticated

get isAuthenticated(): boolean

Checks if the token instance exists.

When an authenticated client gets an authentication error (due to expiration) it should issue a refresh_token grant.

However, non authenticated client should issue a password grant to login.

Returns

boolean


postman

Private get postman(): Postman

Returns

Postman


token

get token(): IOAuth2Token

Gets the current token of the authenticated user. Can be undefined.

Returns

IOAuth2Token

Methods

_cleanEventHandlers

Protected _cleanEventHandlers(): void

Clean event handler callbacks.

We actually just reassign to the default callbacks.

Returns

void

Inherited from

EventFiringClient._cleanEventHandlers


_setEventHandlers

Protected _setEventHandlers(handlers): void

Sets event handler callbacks.

Every event handler callback defaults to _defaultHandlers which just prints the event to console.

An event callback that was not passed in the argument, will default to either:

  • the previous callback is ever set.
  • the _defaultHandlers's corresponding callback.

The default behaviour when appendToPrevious = true is to append the handlers passed in the arguments.

If appendToPrevious is set to false the previous handlers will be cleaned before we the the argument handlers.

Parameters

NameType
handlersOAuth2ClientHandlers

Returns

void

Inherited from

EventFiringClient._setEventHandlers


attachOAuth2Handler

attachOAuth2Handler(handlers): void

Exposes the internal auth event handlers.

Parameters

NameTypeDescription
handlersOAuth2ClientHandlers: OAuth2ClientHandlers

Returns

void


auviousOAuth2RefreshToken

Private auviousOAuth2RefreshToken(): Promise<IOAuth2Token>

Returns

Promise<IOAuth2Token>


deleteToken

Private deleteToken(): void

Removes the token json from local storage.

Returns

void


guestLogin

guestLogin(username, firstName?, lastName?): Promise<IGuestUser>

Simpler (used by Epi) guest login.

Parameters

NameType
usernamestring
firstName?string
lastName?string

Returns

Promise<IGuestUser>


loadToken

Private loadToken(): void

Loads the token json from local storage. Returns undefined if no exists.

Returns

void


login

login(clientId, username, password, organization): Promise<IOAuth2Token>

Login method w/o password grant.

Parameters

NameTypeDescription
clientIdstringthe subdomain of the request.
usernamestringuser username to login.
passwordstringuser password to validate.
organizationstringthe organization to sign in.

Returns

Promise<IOAuth2Token>


loginGuest

loginGuest(clientId, email, organization, firstName, lastName?): Promise<IGuestUser>

Login method for guest.

Parameters

NameTypeDescription
clientIdstringthe subdomain of the request.
emailstring-
organizationstring-
firstNamestring-
lastName?string-

Returns

Promise<IGuestUser>


loginTemplate

loginTemplate(tokenProviderFn, refreshTokenProviderFn?): Promise<IOAuth2Token>

Parameters

NameType
tokenProviderFn() => Promise<IJwtTokenResponse>
refreshTokenProviderFn?(refreshToken: string) => Promise<IJwtTokenResponse>

Returns

Promise<IOAuth2Token>


logout

logout(): Promise<void>

Logout the client.

Cleans the oauth2 token from the client.

Returns

Promise<void>


refreshToken

refreshToken(tokenToRefresh?): Promise<IOAuth2Token>

Refresh method with refresh_token grant.

Parameters

NameTypeDefault value
tokenToRefreshIOAuth2Tokennull

Returns

Promise<IOAuth2Token>


refreshTokenExpired

refreshTokenExpired(): void

Fires the corresponding event of the expired token.

Returns

void


refreshTokenRequested

refreshTokenRequested(): Promise<IOAuth2Token>

Handles the refresh of the expired token.

Returns

Promise<IOAuth2Token>


refreshTokenUsingProviderFn

Private refreshTokenUsingProviderFn(): Promise<IOAuth2Token>

Returns

Promise<IOAuth2Token>


saveToken

Private saveToken(token): void

Saves the token json to local storage. If not authenticated, it ensures the token json is deleted from local storage.

Parameters

NameType
tokenIOAuth2Token

Returns

void


setupPreemptiveTokenRefresh

Private setupPreemptiveTokenRefresh(): void

Returns

void


standardOAuth2Login

standardOAuth2Login(username, password): Promise<IOAuth2Token>

Standard OAuth2 Login.

Parameters

NameTypeDescription
usernamestringusername
passwordstringpassword

Returns

Promise<IOAuth2Token>


standardOAuth2RefreshToken

Private standardOAuth2RefreshToken(): Promise<IOAuth2Token>

Returns

Promise<IOAuth2Token>