sa_token_plugin_salvo/
lib.rs

1// Author: 金书记
2//
3// 中文 | English
4// Salvo 框架集成 | Salvo Framework Integration
5//
6//! # sa-token-plugin-salvo
7//! 
8//! 为 Salvo 框架提供 sa-token 认证和授权支持
9//! Provides sa-token authentication and authorization support for Salvo framework
10//! 
11//! ## 特性 | Features
12//! 
13//! - ✨ 一行导入所有功能 | One-line import for all functionalities
14//! - 🔧 支持多种存储后端 | Support for multiple storage backends
15//! - 🚀 简化的中间件集成 | Simplified middleware integration
16//! - 📦 包含核心、宏、存储 | Includes core, macros, and storage
17//! 
18//! ## 快速开始 | Quick Start
19//! 
20//! ```toml
21//! [dependencies]
22//! sa-token-plugin-salvo = "0.1.8"
23//! ```
24//! 
25//! ```rust,ignore
26//! use std::sync::Arc;
27//! use sa_token_plugin_salvo::*;
28//! 
29//! #[tokio::main]
30//! async fn main() {
31//!     let storage = Arc::new(MemoryStorage::new());
32//!     
33//!     // 创建 Sa-Token 状态 | Create Sa-Token state
34//!     let state = SaTokenState::builder()
35//!         .token_name("Authorization")
36//!         .timeout(7200)
37//!         .storage(storage)
38//!         .build();
39//!     
40//!     // 使用 Salvo 路由 | Use Salvo router
41//!     let router = Router::new()
42//!         // 公共路由 | Public routes
43//!         .push(Router::with_path("login").post(login_handler))
44//!         // 需要登录的路由 | Routes requiring login
45//!         .push(Router::with_path("user")
46//!             .hoop(SaCheckLoginMiddleware::new(state.clone()))
47//!             .get(user_info_handler))
48//!         // 需要特定权限的路由 | Routes requiring specific permission
49//!         .push(Router::with_path("admin")
50//!             .hoop(SaCheckPermissionMiddleware::new(state.clone(), "admin:access"))
51//!             .get(admin_handler));
52//!     
53//!     Server::new(TcpListener::new("127.0.0.1:5800").bind().await)
54//!         .serve(router)
55//!         .await;
56//! }
57//! ```
58
59pub mod adapter;
60pub mod extractor;
61pub mod middleware;
62pub mod layer;
63pub mod state;
64
65pub use sa_token_core::{self, prelude::*};
66pub use sa_token_adapter::{self, storage::SaStorage, framework::FrameworkAdapter};
67pub use sa_token_macro::*;
68
69// 重新导出存储实现(通过 feature 控制)
70// Re-export storage implementations (controlled by features)
71#[cfg(feature = "memory")]
72pub use sa_token_storage_memory::*;
73
74#[cfg(feature = "redis")]
75pub use sa_token_storage_redis::*;
76
77#[cfg(feature = "database")]
78pub use sa_token_storage_database::*;
79
80// 重新导出本模块的适配器 | Re-export adapters from this module
81pub use adapter::*;
82pub use extractor::*;
83pub use middleware::{
84    auth_middleware, permission_middleware, 
85    SaCheckLoginMiddleware, SaCheckPermissionMiddleware, SaCheckRoleMiddleware
86};
87pub use layer::{SaTokenLayer, extract_token_from_request};
88pub use state::{SaTokenState, SaTokenStateBuilder};