resolveAccessToken function
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;
}
}