resolveAccessToken function

  1. @visibleForTesting
Future<String?> resolveAccessToken({
  1. required bool requiresAuth,
  2. String? cachedAccessToken,
  3. Future<String?> tokenResolver({
    1. required bool requiresAuth,
    })?,
  4. void onResolverError(
    1. Object error
    )?,
})

Resolve the bearer token for a request. Requests that do not require auth never attempt token resolution and never send Authorization. Exposed for testing — pure aside from the injected tokenResolver callback, so the API-key-only / JWT-only / keyless / expired-token / resolver-failure matrix can be characterized without FFI.

Implementation

@visibleForTesting
Future<String?> resolveAccessToken({
  required bool requiresAuth,
  String? cachedAccessToken,
  Future<String?> Function({required bool requiresAuth})? tokenResolver,
  void Function(Object error)? onResolverError,
}) async {
  if (!requiresAuth) return null;
  if (tokenResolver == null) return cachedAccessToken;
  try {
    return await tokenResolver(requiresAuth: true);
  } catch (error) {
    onResolverError?.call(error);
    return null;
  }
}