6个版本 (破坏性更新)
0.7.0 | 2023年11月28日 |
---|---|
0.4.1 | 2023年10月4日 |
0.4.0 | 2022年12月3日 |
0.3.0 | 2022年8月17日 |
0.1.1 | 2022年3月27日 |
#100 in 身份验证
每月13,028次下载
在 7 crates 中使用
22KB
117 行
axum身份验证
为axum提供高级 http身份验证 提取器
🚨 此crate提供对 TypedHeader<Authorization<..>>
的替代方案,您可以使用它代替。如果您在寻找更健壮的会话管理,请查看出色的 axum-login crate。我将继续维护此crate。
用法
Bearer身份验证
use axum_auth::AuthBearer;
/// Handler for a typical axum route, takes a `token` and returns it
async fn handler(AuthBearer(token): AuthBearer) -> String {
format!("Found a bearer token: {}", token)
}
基本身份验证
use axum_auth::AuthBasic;
/// Takes basic auth details and shows a message
async fn handler(AuthBasic((id, password)): AuthBasic) -> String {
if let Some(password) = password {
format!("User '{}' with password '{}'", id, password)
} else {
format!("User '{}' without password", id)
}
}
您还可以定义自定义提取器,让您在身份验证失败时返回自定义提取器、状态码和消息给用户。请查看crate文档 以获取有关如何工作的更深入的信息!
安装
只需将以下内容放入axum的Cargo.toml
文件中
[dependencies]
axum-auth = "0.7"
我们的版本从0.7开始遵循axum。您还可以通过功能启用仅基本/载体身份验证。要仅启用基本身份验证,您可以将以下内容添加到Cargo.toml
文件中
[dependencies]
axum-auth = { version = "0.7", default-features = false, features = ["auth-basic"] }
如果您仍在使用axum 0.5,请使用版本0.3。如果您仍在使用axum 0.6,请使用版本0.4。
安全性
以下是一些需要考虑的基本安全注意事项
- 此crate尚未由任何安全专家审计。如果您愿意进行或已对此crate进行审计,请创建一个问题,因为这将非常有帮助!😊
- 此crate有意不限制到达头部的最大长度,请确保您的Web服务器配置已正确设置。
许可
依赖项
~1.8–2.6MB
~51K SLoC