createRefreshTokenAndRetryHandler
Create a handler that will handle the refresh token and retry the original request.
Signature
declare function createRefreshTokenAndRetryHandler(
initialState?: RefreshTokenState
): (error: any,
method: (...args: any[]) => any,
args: any[],
options?: RefreshTokenAndRetryOptions) => Promise<any>;Parameters
| Name | Required | Type | Description |
|---|---|---|---|
initialState | Optional | RefreshTokenState |
Examples
Retry the getUserAddress method after the token is refreshed.
import { createRefreshTokenAndRetryHandler } from '@vsf-enterprise/sapcc-sdk';
const handleRefreshTokenAndRetry = createRefreshTokenAndRetryHandler();
const method = sdk.sapcc.getUserAddress;
const params = { addressId };
try {
const userAddress = await method(params);
} catch (error) {
await handleRefreshTokenAndRetry(error, method, [params]);
}Customize the behavior of the handleRefreshTokenAndRetry function.
import { createRefreshTokenAndRetryHandler } from '@vsf-enterprise/sapcc-sdk';
const handleRefreshTokenAndRetry = createRefreshTokenAndRetryHandler();
const method = sdk.sapcc.getUserAddress;
const params = { addressId };
const refreshTokenMethod = sdk.sapcc.refreshUserToken;
try {
const userAddress = await method(params);
} catch (error) {
await handleRefreshTokenAndRetry(error, method, [params], {
isUnauthorized: (error) => error.response?.status === 401,
refreshTokenMethod,
callbacks: {
onTokenRefreshed: (refreshTokenResponse) => {
// do something after the token is refreshed
},
onTokenRefreshError: (error) => {
// do something when the token refresh fails
},
},
});
}