pub async fn auth_middleware(
auth_provider: Arc<dyn AuthProvider>,
req: Request<Body>,
next: Next,
) -> Result<Response<Body>, AuthError>Expand description
Axum middleware for request-based authentication
This middleware extracts request parts (headers, method, URI), validates them using the provided AuthProvider, and injects the resulting AuthContext into the request extensions.
§Example
ⓘ
use axum::{Router, middleware};
use micromegas_auth::axum::auth_middleware;
use micromegas_auth::api_key::ApiKeyAuthProvider;
use std::sync::Arc;
let auth_provider = Arc::new(ApiKeyAuthProvider::new(keyring));
let app = Router::new()
.layer(middleware::from_fn(move |req, next| {
auth_middleware(auth_provider.clone(), req, next)
}));