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
EventFiringClient
<OAuth2ClientHandlers
>↳
OAuth2Client
Table of contents
Constructors
Properties
- GUEST_ROUTE
- LOGIN_ROUTE
- TOKEN_STORAGE_KEY
- _clientId
- _clientSecret
- _eventHandlers
- _postman
- _realEventHandlers
- _saveTokenOnLocalStorage
- _token
- _useStandardOAuth2
- log
- preemptiveTokenRefreshTask
- refreshTokenProviderFn
- tokenProviderFn
- CLIENT_ID
- OAUTH2_TOKEN_ROUTE
- TOKEN_REFRESH_ROUTE
Accessors
Methods
- _cleanEventHandlers
- _setEventHandlers
- attachOAuth2Handler
- auviousOAuth2RefreshToken
- deleteToken
- guestLogin
- loadToken
- login
- loginGuest
- loginTemplate
- logout
- refreshToken
- refreshTokenExpired
- refreshTokenRequested
- refreshTokenUsingProviderFn
- saveToken
- setupPreemptiveTokenRefresh
- standardOAuth2Login
- standardOAuth2RefreshToken
Constructors
constructor
• new OAuth2Client(clientId
, clientSecret
, serverUrl?
, saveTokenOnLocalStorage?
, eventHandlers?
, useStandardOAuth2?
, timers
)
Parameters
Name | Type | Default value |
---|---|---|
clientId | string | undefined |
clientSecret | string | undefined |
serverUrl | string | "/" |
saveTokenOnLocalStorage | boolean | true |
eventHandlers | OAuth2ClientHandlers | null |
useStandardOAuth2 | boolean | false |
timers | Timers | undefined |
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
Name | Type |
---|---|
refreshToken | any |
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
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
token
• get
token(): IOAuth2Token
Gets the current token of the authenticated user. Can be undefined.
Returns
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
Name | Type |
---|---|
handlers | OAuth2ClientHandlers |
Returns
void
Inherited from
EventFiringClient._setEventHandlers
attachOAuth2Handler
▸ attachOAuth2Handler(handlers
): void
Exposes the internal auth event handlers.
Parameters
Name | Type | Description |
---|---|---|
handlers | OAuth2ClientHandlers | : 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
Name | Type |
---|---|
username | string |
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
Name | Type | Description |
---|---|---|
clientId | string | the subdomain of the request. |
username | string | user username to login. |
password | string | user password to validate. |
organization | string | the organization to sign in. |
Returns
Promise
<IOAuth2Token
>
loginGuest
▸ loginGuest(clientId
, email
, organization
, firstName
, lastName?
): Promise
<IGuestUser
>
Login method for guest.
Parameters
Name | Type | Description |
---|---|---|
clientId | string | the subdomain of the request. |
email | string | - |
organization | string | - |
firstName | string | - |
lastName? | string | - |
Returns
Promise
<IGuestUser
>
loginTemplate
▸ loginTemplate(tokenProviderFn
, refreshTokenProviderFn?
): Promise
<IOAuth2Token
>
Parameters
Name | Type |
---|---|
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
Name | Type | Default value |
---|---|---|
tokenToRefresh | IOAuth2Token | null |
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
Name | Type |
---|---|
token | IOAuth2Token |
Returns
void
setupPreemptiveTokenRefresh
▸ Private
setupPreemptiveTokenRefresh(): void
Returns
void
standardOAuth2Login
▸ standardOAuth2Login(username
, password
): Promise
<IOAuth2Token
>
Standard OAuth2 Login.
Parameters
Name | Type | Description |
---|---|---|
username | string | username |
password | string | password |
Returns
Promise
<IOAuth2Token
>
standardOAuth2RefreshToken
▸ Private
standardOAuth2RefreshToken(): Promise
<IOAuth2Token
>
Returns
Promise
<IOAuth2Token
>