Function serverMetadata

Performs IndieAuth metadata discovery.

IndieAuth metadata adopts OAuth 2.0 Authorization Server Metadata [RFC8414], with the notable difference that discovery of the URL happens via the IndieAuth link relation rather than the .well-known discovery method specified by RFC8414.

  • Parameters

    • metadata_endpoint: string

    Returns Promise<
        | { error: Error; value?: undefined }
        | {
            error?: undefined;
            value: {
                authorization_endpoint: string;
                authorization_response_iss_parameter_supported?: boolean;
                code_challenge_methods_supported?: string[];
                grant_types_supported?: (
                    | "authorization_code"
                    | "implicit"
                    | "password"
                    | "client_credentials"
                    | "refresh_token"
                    | "urn:ietf:params:oauth:grant-type:jwt-bearer"
                    | "urn:ietf:params:oauth:grant-type:saml2-bearer"
                )[];
                introspection_endpoint?: string;
                introspection_endpoint_auth_methods_supported?: string[];
                introspection_endpoint_auth_signing_alg_values_supported?: string[];
                issuer: string;
                jwks_uri?: string;
                op_policy_uri?: string;
                op_tos_uri?: string;
                registration_endpoint?: string;
                response_modes_supported?: ("fragment" | "query")[];
                response_types_supported?: ("code" | "token")[];
                revocation_endpoint?: string;
                revocation_endpoint_auth_methods_supported?: string[];
                revocation_endpoint_auth_signing_alg_values_supported?: string[];
                scopes_supported?: string[];
                service_documentation?: string;
                token_endpoint: string;
                token_endpoint_auth_methods_supported?: string[];
                token_endpoint_auth_signing_alg_values_supported?: string[];
                ui_locales_supported?: string[];
                userinfo_endpoint?: string;
            };
        },
    >