身份校验中间件
2025年8月17日小于 1 分钟hyperlanewebrustmiddlewareauth
提示
hyperlane
框架支持身份校验中间件,用于处理身份校验。
身份校验中间件
use hyperlane::*;
async fn http_version_middleware(ctx: Context) {
ctx.set_response_version(HttpVersion::HTTP1_1).await;
}
async fn auth(ctx: Context) {
let auth_str: String = ctx
.get_request_header_back(AUTHORIZATION)
.await
.unwrap_or_default();
if auth_str.is_empty() {
ctx.set_response_status_code(401)
.await
.set_response_body("Unauthorized")
.await
.send()
.await
.unwrap();
ctx.aborted().await;
}
}
async fn index(ctx: Context) {
ctx.set_response_status_code(200)
.await
.set_response_body("Hello, world!")
.await;
}
async fn response_middleware(ctx: Context) {
ctx.send().await.unwrap();
}
#[tokio::main]
async fn main() {
Server::new()
.request_middleware(http_version_middleware)
.await
.request_middleware(auth)
.await
.response_middleware(response_middleware)
.await
.route("/", index)
.await
.run()
.await
.unwrap();
}