Interface: OAuth2Client
Implement this interface for OAuth 2 APIs that use Authorization Code Grant.
The protocol flow is described in https://datatracker.ietf.org/doc/html/rfc6749#section-4.1
- generateAuthRequest -> A-C in the RFC
- exchangeGrant -> D-E in the RFC
Storing Access Tokens: To store the access tokens as secure as possible you need to create a field in your configuration with {isSecret: true}. This ensures that the access token is never transferred to the frontend but to your app. To set or update access tokens you can use SodaSync.context.config as usual.
Methods
exchangeGrant
▸ exchangeGrant(request
, state
): void
This method is called after the user was redirected back from the external system. It should exchange authorization code with an access token.
Parameters
Name | Type | Description |
---|---|---|
request | Object | The raw http request that contain the URL with all parameters such as code. |
request.body? | string | - |
request.headers? | Record <string , string > | - |
request.method? | string | - |
request.url? | string | - |
state | Record <string , string > | The state data from the AuthRequest |
Returns
void
Defined in
src/contracts/oauth/oauth2-client.ts:32
generateAuthRequest
▸ generateAuthRequest(redirectUrl
, state
): Object
This method is called to initiate the OAuth 2 flow.
Parameters
Name | Type | Description |
---|---|---|
redirectUrl | string | The url for redirecting the user back. |
state | string | The state string |
Returns
Object
Name | Type |
---|---|
authUrl? | string |
state? | Record <string , string > |
Defined in
src/contracts/oauth/oauth2-client.ts:23