fetchProtectedResourceMetadata method

Future<ProtectedResourceMetadata> fetchProtectedResourceMetadata(
  1. Uri url
)

Fetch and parse an RFC 9728 Protected Resource Metadata document.

Implementation

Future<ProtectedResourceMetadata> fetchProtectedResourceMetadata(
    Uri url) async {
  final response = await _httpClient.get(
    url,
    headers: {'Accept': 'application/json'},
  );
  if (response.statusCode != 200) {
    throw OAuthError(
      error: 'protected_resource_discovery_failed',
      errorDescription:
          'Failed to fetch Protected Resource Metadata ($url): '
          '${response.statusCode}',
    );
  }
  final json = jsonDecode(response.body) as Map<String, dynamic>;
  return ProtectedResourceMetadata.fromJson(json);
}