@openroland/http-client
v0.1.13
Published
Axios client factory with token refresh queue handling
Readme
@openroland/http-client
Axios client factory with:
- bearer token injection from an adapter;
- one-at-a-time token refresh on 401;
- queued retries for concurrent 401 responses;
- auth clear and optional redirect on refresh failure.
Usage
import { createAuthenticatedApiClient } from "@openroland/http-client"
const client = createAuthenticatedApiClient({
baseURL: "https://api.example.com",
adapter: {
getAccessToken: () => session.accessToken,
setAccessToken: (token) => {
session.accessToken = token
},
clearAuth: () => {
session.accessToken = null
},
redirectToLogin: () => {
window.location.href = "/login"
},
},
refreshAccessToken: async () => {
const result = await fetch("/auth/refresh", { method: "POST" })
const body = await result.json()
return body.access_token as string
},
})