| Crates.io | axum-login |
| lib.rs | axum-login |
| version | 0.18.0 |
| created_at | 2022-08-27 17:19:37.230657+00 |
| updated_at | 2025-07-20 15:23:10.473411+00 |
| description | 🪪 User identification, authentication, and authorization for Axum. |
| homepage | https://github.com/maxcountryman/axum-login |
| repository | https://github.com/maxcountryman/axum-login |
| max_upload_size | |
| id | 653501 |
| size | 150,883 |
🪪 User identification, authentication, and authorization for Axum.
This crate provides user identification, authentication, and authorization
as a tower middleware for axum.
It offers:
AuthSession to easily manage authentication and authorization. This is
also an extractor, so it can be used directly in your axum handlers.AuthUser and AuthnBackend, allowing for any user
type and any user management backend. Your database? Yep. LDAP? Sure. An
auth provider? You bet.AuthzBackend trait, which allows applications to define custom
permissions. Both user and group permissions are supported.login_required and permission_required
macros. Or bring your own by using AuthSession directly with
from_fn.tower-sessions
for high-performing and ergonomic session management. Look ma, no deadlocks!To use the crate in your project, add the following to your Cargo.toml file:
[dependencies]
axum-login = "0.18.0"
We recommend reviewing our sqlite example. There is also a template for cargo-generate using postgres.
[!NOTE] See the crate documentation for usage information.
This crate uses #![forbid(unsafe_code)] to ensure everything is implemented in 100% safe Rust.
We've put together a number of examples to help get you started. You're also welcome to open a discussion and ask additional questions you might have.
We appreciate all kinds of contributions, thank you!