Axum-Login 项目教程
1. 项目的目录结构及介绍
Axum-Login 项目的目录结构如下:
axum-login/
├── examples/
├── src/
│ ├── lib.rs
│ ├── auth.rs
│ ├── extractor.rs
│ ├── manager.rs
│ └── session.rs
├── .gitignore
├── CHANGELOG.md
├── Cargo.toml
├── LICENSE
├── README.md
└── rustfmt.toml
目录介绍
- examples/: 包含示例代码,展示如何使用 axum-login 进行用户认证和授权。
- src/: 项目的主要源代码目录。
- lib.rs: 项目的主库文件,定义了模块和导出。
- auth.rs: 包含认证相关的逻辑。
- extractor.rs: 定义了用于提取用户信息的提取器。
- manager.rs: 管理用户会话和认证状态。
- session.rs: 处理会话相关的逻辑。
- .gitignore: Git 忽略文件列表。
- CHANGELOG.md: 项目更新日志。
- Cargo.toml: Rust 项目的配置文件,定义了依赖和项目元数据。
- LICENSE: 项目许可证。
- README.md: 项目说明文档。
- rustfmt.toml: Rust 代码格式化配置文件。
2. 项目的启动文件介绍
项目的启动文件是 src/lib.rs
,它定义了项目的模块和导出。以下是 src/lib.rs
的部分代码:
pub mod auth;
pub mod extractor;
pub mod manager;
pub mod session;
pub use auth::*;
pub use extractor::*;
pub use manager::*;
pub use session::*;
启动文件介绍
- pub mod auth;: 导入了认证模块。
- pub mod extractor;: 导入了提取器模块。
- pub mod manager;: 导入了管理器模块。
- pub mod session;: 导入了会话模块。
- pub use auth::*;: 导出了认证模块的所有内容。
- pub use extractor::*;: 导出了提取器模块的所有内容。
- pub use manager::*;: 导出了管理器模块的所有内容。
- pub use session::*;: 导出了会话模块的所有内容。
3. 项目的配置文件介绍
项目的配置文件是 Cargo.toml
,它定义了项目的依赖和元数据。以下是 Cargo.toml
的部分内容:
[package]
name = "axum-login"
version = "0.1.0"
edition = "2021"
[dependencies]
async-trait = "0.1.57"
axum = "0.7.1"
form_urlencoded = "1.2.1"
serde = { version = "1.0", features = ["derive"] }
subtle = "2.5.0"
thiserror = "1.0.49"
tower-cookies = "0.10.0"
tower-layer = "0.3.2"
tower-service = "0.3.2"
tower-sessions = "0.12.1"
tracing = "0.1.40"
urlencoding = "2.1.3"
[dev-dependencies]
mockall = "0.12"
reqwest = "0.12"
serial_test = "3.0.0"
time = "0.3.36"
tokio = "1.32.0"
tokio-test = "0.4.3"
tower = "0.4.13"
tower-sessions-sqlx-store = "0.12.0"
配置文件介绍
- [package]: 定义了项目的名称、版本和 Rust 版本。
- [dependencies]: 定义了项目运行所需的依赖。
- [dev-dependencies]: 定义了开发和测试所需的依赖。
以上是 Axum-Login 项目的目录结构、启动文件和配置文件的介绍。希望这份教程能帮助你更好地理解和使用该项目。