access function
Middleware that handles access token authentication.
This middleware:
- Adds stored access tokens to requests via Authorization header
- Updates stored access tokens from response headers
- Automatically manages token refresh
Returns an HttpMiddleware function.
Example
final client = HttpClient(http.Client())
.use([access()]);
Implementation
HttpMiddleware access() => (http.BaseRequest request, next) async {
final values = await aggregateAccess();
request.headers.addAll(values);
final response = await next(request);
final refreshAccessToken = response.headers["X-Calljmp-Access-Token"];
if (refreshAccessToken != null) {
await CalljmpStore.instance.put(
CalljmpStoreKey.accessToken,
refreshAccessToken,
);
}
return response;
};