ayun-server 0.24.0

The RUST Framework for Web Rustceans.
Documentation
use crate::{
    traits::{MiddlewareTrait, RequestTrait},
    Middleware, ServerResult,
};
use axum::{extract::Request, middleware, middleware::Next, response::IntoResponse};
use ayun_core::traits::InstanceTrait;

pub struct Auth;

impl MiddlewareTrait for Auth {
    fn handle() -> Middleware {
        Box::new(|router| Ok(router.layer(middleware::from_fn(handle))))
    }
}

async fn handle(mut request: Request, next: Next) -> ServerResult<impl IntoResponse> {
    let user = ayun_auth::Auth::facade().check(&request.token()?)?;

    request.extensions_mut().insert(user);

    Ok(next.run(request).await)
}