authorizationServerMetadata method

Future<AuthServerMetadata> authorizationServerMetadata(
  1. String issuer
)

The authorization server's metadata: tried at each well-known location in turn; the document must name issuer exactly.

Implementation

Future<AuthServerMetadata> authorizationServerMetadata(String issuer) async {
  for (final url in authorizationServerMetadataUrls(issuer)) {
    final json = await _getJson(url);
    if (json == null) continue;
    if (json['issuer'] != issuer) {
      throw OAuthError(
          error: 'invalid_issuer',
          errorDescription: 'Metadata at $url names issuer ${json['issuer']}, not $issuer');
    }
    return AuthServerMetadata.fromJson(json);
  }
  throw OAuthError(error: 'as_discovery_failed', errorDescription: 'No metadata for the authorization server $issuer');
}