Please check the documentation for API Endpoints and Models for more details.
npm install @affinidi-tdk/iam-client --save
We use Axios plugin that intercepts failed requests and retries them whenever possible.
You can configure some of retry parameters:
Name | Type | Default | Description |
---|---|---|---|
retries | Number |
3 |
The number of times to retry before failing. 1 = One retry after first failure. The number can be between 0 and 3. |
isExponentialDelay | Boolean |
false |
By default there is no delay between retries. When option is set to true (See Exponential Backoff), the client will periodically retry a failed request over an increasing amount of time. |
Please note that retry condition is not configurable and axios-retry default value is used isNetworkOrIdempotentRequestError
. It retries if it is a network error or a 5xx error on an idempotent request (GET, HEAD, OPTIONS, PUT or DELETE).
import { SomeClassApi, Configuration } from '@affinidi-tdk/iam-client'
const projectScopedToken = '...' // NOTE: you can get it after making Affinidi Login (via CLI, Dev Portal)
const retryConfig = {
retries: 2,
isExponentialDelay: true,
}
const api = new SomeClassApi(
new Configuration({
apiKey: projectScopedToken,
}),
retryConfig,
)
await api.oneOfMethods()
💡 To create PAT, use Affinidi CLI's create-token command.
affinidi token create-token -n MyNewToken -w -p YOUR-SECRET-PASSPHRASE
This command will return you variables to initialize AuthProvider as required below.
import { SomeClassApi, Configuration } from '@affinidi-tdk/iam-client'
import { AuthProvider } from '@affinidi-tdk/auth-provider'
const authProvider = new AuthProvider({
apiGatewayUrl,
keyId,
tokenId,
passphrase,
privateKey,
projectId,
tokenEndpoint,
})
const api = new SomeClassApi(
new Configuration({
apiKey: authProvider.fetchProjectScopedToken.bind(authProvider),
}),
)
await api.oneOfMethods()
import { SomeClassApi, Configuration } from '@affinidi-tdk/iam-client'
import { getBffHeaders } from '@affinidi-tdk/auth-provider'
const headers = getBffHeaders(cookieName, sessionId)
const baseOptions = { headers }
const api = new SomeClassApi(
new Configuration({ basePath: `${bffHost}/iam`, baseOptions }),
)
await api.oneOfMethods()