axum-login
🪪 用于Axum的用户识别、认证和授权。
🎨 概览
本crate为axum
提供了一个tower
中间件,用于用户识别、认证和授权。
它提供:
- 用户识别、认证和授权:利用
AuthSession
轻松管理认证和授权。这也是一个提取器,可以直接在你的axum
处理程序中使用。 - 支持任意用户和后端:应用程序实现
AuthUser
和AuthnBackend
两个特征,允许使用任何用户类型和任何用户管理后端。你的数据库?没问题。LDAP?当然可以。认证提供商?没问题。 - 用户和组权限:通过
AuthzBackend
特征支持授权,允许应用程序定义自定义权限。同时支持用户和组权限。 - 便捷的路由保护:通过
login_required
和permission_required
宏提供保护路由访问的中间件。或者直接使用AuthSession
与from_fn
来创建你自己的中间件。 - 坚如磐石的会话管理:使用
tower-sessions
实现高性能且人性化的会话管理。看,妈妈,没有死锁!
📦 安装
要在你的项目中使用本crate,请在Cargo.toml
文件中添加以下内容:
[dependencies]
axum-login = "0.15.3"
🤸 使用
我们建议查看我们的sqlite
示例。还有一个使用postgres的cargo-generate
模板。
[!注意] 有关使用信息,请参阅crate文档。
🦺 安全性
本crate使用#![forbid(unsafe_code)]
确保所有内容都是用100%安全的Rust实现的。
🛟 获取帮助
我们准备了一些示例来帮助你入门。你也可以开启一个讨论并提出你可能有的其他问题。
👯 贡献
我们感谢各种形式的贡献,谢谢你们!