AuthHandler class

Handles JWT authentication, token storage, and automatic token refresh.

This class manages the complete authentication lifecycle including:

  • Storing and retrieving JWT and refresh tokens securely
  • Adding authorization headers to requests
  • Refreshing expired tokens automatically

Example usage:

// Authorize a user after login
await authHandler.authorize(jwt: accessToken, refreshToken: refreshToken);

// Check if user is authorized
if (await authHandler.isAuthorized) {
  // User has valid tokens stored
}

// Logout - clear all tokens
await authHandler.unAuthorize();

Constructors

AuthHandler({required Dio dio, required RestApiClientOptions options, required AuthOptions authOptions, required ExceptionOptions exceptionOptions, required LoggingOptions loggingOptions, required ExceptionHandler exceptionHandler})
Creates an AuthHandler instance.

Properties

authOptions → AuthOptions
Authentication-specific options (refresh endpoint, token resolvers, etc.).
final
containsAuthorizationHeader → Future<bool>
Whether the Authorization header is currently set in Dio.
no setter
containsJwtInStorage → Future<bool>
Whether a JWT token exists in storage.
no setter
containsRefreshTokenInStorage → Future<bool>
Whether a refresh token exists in storage.
no setter
dio → Dio
The Dio instance used for making HTTP requests.
final
exceptionHandler → ExceptionHandler
Handler for processing exceptions.
final
exceptionOptions → ExceptionOptions
Exception handling options.
final
hashCode → int
The hash code for this object.
no setterinherited
isAuthorized → Future<bool>
Whether the user is fully authorized (has header, JWT, and refresh token).
no setter
jwt → Future<String?>
Retrieves the stored JWT token, or null if not present.
no setter
loggingOptions → LoggingOptions
Logging configuration options.
final
options → RestApiClientOptions
General REST API client options (baseUrl, etc.).
final
refreshToken → Future<String?>
Retrieves the stored refresh token, or null if not present.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
usesAuth → bool
Whether the Dio instance currently has an Authorization header set.
no setter

Methods

authorize({required String jwt, required String refreshToken}) → Future<bool>
Stores the JWT and refresh token, and sets the Authorization header.
clear() → Future
Clears all data from the auth storage.
executeTokenRefresh() → Future<void>
Executes the token refresh request to the configured endpoint.
init() → Future
Initializes the auth handler and restores any previously stored tokens.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
refreshTokenCallback<T>(RequestOptions requestOptions, [RequestInterceptorHandler? handler]) → Future<Response<T>?>
Refreshes the token and retries the request with the new token.
toString() → String
A string representation of this object.
inherited
unAuthorize() → Future<bool>
Clears all stored tokens and removes the Authorization header.

Operators

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