sa_token_plugin_tide/lib.rs
1// Author: 金书记
2//
3// 中文 | English
4// Tide 框架集成 | Tide Framework Integration
5//
6//! # sa-token-plugin-tide
7//!
8//! 为 Tide 框架提供 sa-token 认证和授权支持
9//! Provides sa-token authentication and authorization support for Tide 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-tide = "0.1.8"
23//! ```
24//!
25//! ```rust,ignore
26//! use std::sync::Arc;
27//! use sa_token_plugin_tide::*;
28//!
29//! #[async_std::main]
30//! async fn main() -> tide::Result<()> {
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//! let mut app = tide::new();
41//!
42//! // 公共路由 | Public routes
43//! app.at("/login").post(login_handler);
44//!
45//! // 需要登录的路由 | Routes requiring login
46//! app.at("/user")
47//! .with(SaCheckLoginMiddleware::new(state.clone()))
48//! .get(user_info_handler);
49//!
50//! // 需要特定权限的路由 | Routes requiring specific permission
51//! app.at("/admin")
52//! .with(SaCheckPermissionMiddleware::new(state.clone(), "admin:access"))
53//! .get(admin_handler);
54//!
55//! app.listen("127.0.0.1:8080").await?;
56//! Ok(())
57//! }
58//! ```
59
60pub mod adapter;
61pub mod extractor;
62pub mod middleware;
63pub mod layer;
64pub mod state;
65
66// 重新导出核心功能 | Re-export core functionalities
67pub use sa_token_core::{self, SaTokenManager, StpUtil, SaTokenConfig, TokenValue, TokenInfo,
68 SaSession, PermissionChecker, SaTokenError, SaTokenEvent, SaTokenListener, SaTokenEventBus, LoggingListener,
69 JwtManager, JwtClaims, JwtAlgorithm, OAuth2Manager, OAuth2Client, AuthorizationCode, AccessToken, OAuth2TokenInfo,
70 NonceManager, RefreshTokenManager, WsAuthManager, WsAuthInfo, WsTokenExtractor, DefaultWsTokenExtractor,
71 OnlineManager, OnlineUser, PushMessage, MessageType, MessagePusher, InMemoryPusher,
72 DistributedSessionManager, DistributedSession, DistributedSessionStorage, ServiceCredential, InMemoryDistributedStorage,
73 config::TokenStyle, token, error};
74
75pub use sa_token_adapter::{self, storage::SaStorage, framework::FrameworkAdapter};
76pub use sa_token_macro::*;
77
78// 重新导出存储实现(通过 feature 控制)
79// Re-export storage implementations (controlled by features)
80#[cfg(feature = "memory")]
81pub use sa_token_storage_memory::*;
82
83#[cfg(feature = "redis")]
84pub use sa_token_storage_redis::*;
85
86#[cfg(feature = "database")]
87pub use sa_token_storage_database::*;
88
89// 重新导出本模块的适配器 | Re-export adapters from this module
90pub use adapter::*;
91pub use extractor::*;
92pub use middleware::{
93 AuthMiddleware, PermissionMiddleware,
94 SaCheckLoginMiddleware, SaCheckPermissionMiddleware, SaCheckRoleMiddleware
95};
96pub use layer::{SaTokenLayer, extract_token_from_request};
97pub use state::{SaTokenState, SaTokenStateBuilder};
98