Fresh<T> constructor

Fresh<T>({
  1. required TokenHeaderBuilder<T> tokenHeader,
  2. required TokenStorage<T> tokenStorage,
  3. required RefreshToken<T> refreshToken,
  4. ShouldRefresh? shouldRefresh,
  5. Dio? httpClient,
})

A Dio Interceptor for automatic token refresh. Requires a concrete implementation of TokenStorage and RefreshToken. Handles transparently refreshing/caching tokens.

dio.interceptors.add(
  Fresh<OAuth2Token>(
    tokenStorage: InMemoryTokenStorage(),
    refreshToken: (token, client) async {...},
  ),
);

Implementation

Fresh({
  required TokenHeaderBuilder<T> tokenHeader,
  required TokenStorage<T> tokenStorage,
  required RefreshToken<T> refreshToken,
  ShouldRefresh? shouldRefresh,
  Dio? httpClient,
})  : _refreshToken = refreshToken,
      _tokenHeader = tokenHeader,
      _shouldRefresh = shouldRefresh ?? _defaultShouldRefresh,
      _httpClient = httpClient ?? Dio() {
  this.tokenStorage = tokenStorage;
}