Skip to main content

sa_token_core/
lib.rs

1// Author: 金书记
2//
3//! # sa-token-core
4//!
5//! sa-token-rust 的核心库,提供与框架无关的认证授权功能
6//!
7//! ## 主要功能
8//!
9//! - Token 管理:生成、验证、刷新
10//! - Session 管理:会话存储与管理
11//! - 权限验证:基于角色/权限的访问控制
12//! - 账号管理:登录、登出、踢人下线、封禁等
13//!
14//! ## 使用示例
15//!
16//! ```rust,ignore
17//! use sa_token_core::SaTokenManager;
18//!
19//! let manager = SaTokenManager::new(storage, config);
20//! let token = manager.login("user_123").await?;
21//! ```
22
23pub mod cleanup;
24pub mod codec;
25pub mod config;
26pub mod context;
27pub mod dao;
28pub mod disable;
29pub mod distributed;
30pub mod event;
31pub mod http_basic;
32pub mod keys;
33pub mod nonce;
34pub mod oauth2;
35pub mod online;
36pub mod permission;
37/// Common re-exports | 常用类型重导出
38pub mod prelude;
39pub mod refresh;
40pub mod repository;
41/// Path-based auth routing | 基于路径的鉴权路由
42pub mod router;
43pub mod safe;
44pub mod same_token;
45pub mod service;
46pub mod session;
47pub mod sign;
48pub mod sso;
49pub mod stp_interface;
50pub mod stp_logic;
51pub mod temp_token;
52pub mod token;
53pub mod token_io;
54pub mod token_session;
55pub mod util;
56pub mod ws;
57
58pub mod error;
59mod manager;
60
61pub use config::{
62    GrantWritePolicy, LogoutMode, LogoutRange, ReplacedLoginExitMode, ReplacedRange, SaTokenConfig,
63    TokenCookieConfig,
64};
65pub use context::{
66    GrantScope, RequestAuthMeta, SaTokenContext, SaTokenContextBuilder, SaTokenContextInner,
67};
68pub use dao::SaTokenDao;
69pub use error::{SaTokenError, SaTokenResult};
70pub use keys::{
71    AccountNs, KeyError, LOGIN_TYPE_DEFAULT, LOGIN_TYPE_LOGIN, LOGIN_TYPE_SSO,
72    LOGIN_TYPE_SSO_CLIENT, SaKeyLayout, SaKeys,
73};
74pub use manager::SaTokenManager;
75pub use repository::{GrantRepo, SessionRepo, TokenIdMapping, TokenRepo};
76#[cfg(feature = "fory")]
77pub use sa_token_adapter::serializer::ForySerializer;
78pub use sa_token_adapter::serializer::{JsonSerializer, SaSerializer, SharedSerializer, ValueKind};
79pub use service::{
80    AuthService, AuthzService, GrantCache, GrantKind, LoginCompensator, LoginRequest,
81    RollbackReport,
82};
83pub use stp_interface::{StorageStpInterface, StpInterface};
84pub use util::{LoginId, StpUtil, TokenBuilder};
85
86// 重新导出核心类型
87pub use cleanup::{BackgroundCleanupTask, CleanupConfig};
88pub use disable::{
89    DEFAULT_DISABLE_LEVEL, DEFAULT_DISABLE_SERVICE, MIN_DISABLE_LEVEL, NOT_DISABLE_LEVEL,
90};
91pub use distributed::{
92    DistributedSession, DistributedSessionManager, DistributedSessionStorage,
93    InMemoryDistributedStorage, SaStorageDistributedStorage, ServiceCredential,
94};
95pub use event::{
96    DispatchMode, EventBusConfig, LoggingListener, SaTokenEvent, SaTokenEventBus, SaTokenEventType,
97    SaTokenListener,
98};
99pub use nonce::{NonceManager, NonceRecord};
100pub use oauth2::{
101    AccessToken, AuthorizationCode, CodeChallengeMethod, OAuth2Client, OAuth2Manager,
102    OAuth2TokenInfo, PasswordVerifier, PkceChallenge, TokenIssueRequest,
103};
104pub use online::{
105    DistributedOnlineStore, InMemoryPusher, LocalOnlineStore, MessagePusher, MessageType,
106    OnlineManager, OnlineStore, OnlineUser, PushMessage, StoredOnlineUser,
107};
108pub use permission::{AntPermissionMatcher, ExactMatcher, PermissionMatcher};
109pub use refresh::RefreshTokenManager;
110pub use router::{
111    AuthFlowResult, PathAuthConfig, extract_token, extract_token_from, match_any, match_path,
112    need_auth, run_auth_flow,
113};
114pub use safe::{DEFAULT_SAFE_SERVICE, SAFE_AUTH_VALUE};
115pub use session::SaSession;
116pub use session::SaTerminalInfo;
117pub use sign::{RequestSign, map_sign_err_to_sso};
118pub use sso::{
119    CheckTicketResult, LocalTicketChecker, NoopSloNotifier, SloNotifier, SsoClient, SsoConfig,
120    SsoManager, SsoServer, SsoSession, SsoTicket, SsoTicketStore, TicketChecker,
121};
122#[cfg(feature = "sso-http")]
123pub use sso::{HttpSloNotifier, HttpTicketChecker};
124pub use stp_logic::SaLogic;
125pub use temp_token::{
126    DEFAULT_NAMESPACE as TEMP_TOKEN_DEFAULT_NAMESPACE, TempTokenManager, TempTokenRecord,
127};
128pub use token::{
129    JwtAlgorithm, JwtClaims, JwtManager, TokenInfo, TokenValue, generate_unique, intern_login_type,
130};
131pub use token_io::{apply_token_prefix, delete_token_cookie, read_token, write_token_cookie};
132pub use ws::{DefaultWsTokenExtractor, WsAuthInfo, WsAuthManager, WsTokenExtractor};