/
rorikstr
/
multiberry-backend
Обзор
Документация
Войти
/
rorikstr
/
multiberry-backend
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
src/auth/middleware.rs
39 строк
1000 B
Rorik Star Platinum
finish 30% lol
09 ноя 2025, 21:03
09 ноя 2025, 21:03
ea863ad
Код
Авторство
О чём код?
// src/auth/middleware.rs use axum::{ body::Body, extract::Request, http::{HeaderMap, StatusCode}, middleware::Next, response::Response, Json, }; use tracing::{info, error}; use serde_json::json; use super::jwt::validate_token; pub async fn auth_middleware( headers: HeaderMap, mut req: Request<Body>, next: Next, ) -> Result<Response, (StatusCode, Json<serde_json::Value>)> { let token = headers .get("authorization") .and_then(|v| v.to_str().ok()) .and_then(|v| v.strip_prefix("Bearer ")) .ok_or_else(|| ( StatusCode::UNAUTHORIZED, Json(json!({ "error": "Missing or invalid authorization header" })) ))?; let claims = validate_token(token).map_err(|_| ( StatusCode::UNAUTHORIZED, Json(json!({ "error": "Invalid or expired token" })) ))?; info!("🔑auth_middleware token: {}", token); req.extensions_mut().insert(claims); Ok(next.run(req).await) }