rustauth-oauth-provider 0.3.0

OAuth 2.1 and OpenID Connect provider support for RustAuth.
Documentation
use super::*;

pub(super) fn protected_resource_metadata_endpoint(
    options: Arc<ResolvedOAuthProviderOptions>,
) -> Option<AsyncAuthEndpoint> {
    let mcp = options.mcp.clone()?;
    Some(create_auth_endpoint(
        "/.well-known/oauth-protected-resource",
        Method::GET,
        AuthEndpointOptions::new().operation_id("getMcpProtectedResourceMetadata"),
        move |context, _request| {
            let options = Arc::clone(&options);
            let mcp = mcp.clone();
            async move {
                let metadata =
                    crate::mcp::protected_resource_metadata_document(&context, &options, &mcp)?;
                no_store_json_response(StatusCode::OK, &metadata)
            }
        },
    ))
}