Skip to main content

rok_auth_basic/
lib.rs

1//! rok-auth-basic — HTTP Basic authentication guard for the rok ecosystem.
2//!
3//! Wraps your routes with [`BasicAuthLayer`], which validates
4//! `Authorization: Basic <base64>` headers via a custom async verifier and
5//! injects the resulting [`rok_auth::Claims`] into request extensions.
6//!
7//! ```rust,ignore
8//! use rok_auth::Claims;
9//! use rok_auth_basic::BasicAuthLayer;
10//! use axum::{Router, routing::get};
11//!
12//! let app = Router::new()
13//!     .route("/metrics", get(metrics_handler))
14//!     .layer(BasicAuthLayer::new("My API", |user: String, pass: String| async move {
15//!         (user == "ops" && pass == "secret")
16//!             .then(|| Claims::new(user, vec!["metrics:read"]))
17//!     }));
18//! ```
19
20pub mod layer;
21
22pub use layer::{parse_basic_header, BasicAuthLayer, BasicAuthService, VerifyFn};