AuthenticatedHttpClient class

An HTTP client wrapper that transparently injects bearer tokens and handles automatic token refresh.

This client is passed to BappApiClient as its httpClient parameter, so all API requests get auth headers and token management automatically.

Features:

  • Dynamic bearer token injection on every request
  • Proactive token refresh when tokens are expiring soon
  • Automatic retry on 498 (Token Expired) responses
  • Concurrent refresh prevention with a lock

Constructors

AuthenticatedHttpClient({Client? inner})

Properties

hashCode int
The hash code for this object.
no setterinherited
hasToken bool
Whether a valid token is currently set.
no setter
onAuthRequired OnAuthRequiredFn?
Called when token refresh fails and the user must re-authenticate.
getter/setter pair
onRefreshToken TokenRefreshFn?
Called when a token refresh is needed.
getter/setter pair
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

clearToken() → void
Clear the current token. Called on logout.
close() → void
Closes the client and cleans up any resources associated with it.
delete(Uri url, {Map<String, String>? headers, Object? body, Encoding? encoding}) Future<Response>
Sends an HTTP DELETE request with the given headers to the given URL.
inherited
get(Uri url, {Map<String, String>? headers}) Future<Response>
Sends an HTTP GET request with the given headers to the given URL.
inherited
Sends an HTTP HEAD request with the given headers to the given URL.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
patch(Uri url, {Map<String, String>? headers, Object? body, Encoding? encoding}) Future<Response>
Sends an HTTP PATCH request with the given headers and body to the given URL.
inherited
post(Uri url, {Map<String, String>? headers, Object? body, Encoding? encoding}) Future<Response>
Sends an HTTP POST request with the given headers and body to the given URL.
inherited
put(Uri url, {Map<String, String>? headers, Object? body, Encoding? encoding}) Future<Response>
Sends an HTTP PUT request with the given headers and body to the given URL.
inherited
read(Uri url, {Map<String, String>? headers}) Future<String>
Sends an HTTP GET request with the given headers to the given URL and returns a Future that completes to the body of the response as a String.
inherited
readBytes(Uri url, {Map<String, String>? headers}) Future<Uint8List>
Sends an HTTP GET request with the given headers to the given URL and returns a Future that completes to the body of the response as a list of bytes.
inherited
send(BaseRequest request) Future<StreamedResponse>
Sends an HTTP request and asynchronously returns the response.
toString() String
A string representation of this object.
inherited
updateToken(TokenResponse token) → void
Update the current token. Called after login or refresh.

Operators

operator ==(Object other) bool
The equality operator.
inherited