auth_middleware

Function auth_middleware 

Source
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)
    }));