Alokai

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

NameRequiredTypeDescription
initialStateOptionalRefreshTokenState

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
      },
    },
  });
}

On this page