Skip to main content

Crate sa_token_core

Crate sa_token_core 

Source
Expand description

§sa-token-core

sa-token-rust 的核心库,提供与框架无关的认证授权功能

§主要功能

  • Token 管理:生成、验证、刷新
  • Session 管理:会话存储与管理
  • 权限验证:基于角色/权限的访问控制
  • 账号管理:登录、登出、踢人下线、封禁等

§使用示例

ⓘ
use sa_token_core::SaTokenManager;

let manager = SaTokenManager::new(storage, config);
let token = manager.login("user_123").await?;

Re-exports§

pub use config::GrantWritePolicy;
pub use config::LogoutMode;
pub use config::LogoutRange;
pub use config::ReplacedLoginExitMode;
pub use config::ReplacedRange;
pub use config::SaTokenConfig;
pub use config::TokenCookieConfig;
pub use context::GrantScope;
pub use context::RequestAuthMeta;
pub use context::SaTokenContext;
pub use context::SaTokenContextBuilder;
pub use context::SaTokenContextInner;
pub use dao::SaTokenDao;
pub use error::SaTokenError;
pub use error::SaTokenResult;
pub use keys::AccountNs;
pub use keys::KeyError;
pub use keys::LOGIN_TYPE_DEFAULT;
pub use keys::LOGIN_TYPE_LOGIN;
pub use keys::LOGIN_TYPE_SSO;
pub use keys::LOGIN_TYPE_SSO_CLIENT;
pub use keys::SaKeyLayout;
pub use keys::SaKeys;
pub use repository::GrantRepo;
pub use repository::SessionRepo;
pub use repository::TokenIdMapping;
pub use repository::TokenRepo;
pub use service::AuthService;
pub use service::AuthzService;
pub use service::GrantCache;
pub use service::GrantKind;
pub use service::LoginCompensator;
pub use service::LoginRequest;
pub use service::RollbackReport;
pub use stp_interface::StorageStpInterface;
pub use stp_interface::StpInterface;
pub use util::LoginId;
pub use util::StpUtil;
pub use util::TokenBuilder;
pub use cleanup::BackgroundCleanupTask;
pub use cleanup::CleanupConfig;
pub use disable::DEFAULT_DISABLE_LEVEL;
pub use disable::DEFAULT_DISABLE_SERVICE;
pub use disable::MIN_DISABLE_LEVEL;
pub use disable::NOT_DISABLE_LEVEL;
pub use distributed::DistributedSession;
pub use distributed::DistributedSessionManager;
pub use distributed::DistributedSessionStorage;
pub use distributed::InMemoryDistributedStorage;
pub use distributed::SaStorageDistributedStorage;
pub use distributed::ServiceCredential;
pub use event::DispatchMode;
pub use event::EventBusConfig;
pub use event::LoggingListener;
pub use event::SaTokenEvent;
pub use event::SaTokenEventBus;
pub use event::SaTokenEventType;
pub use event::SaTokenListener;
pub use nonce::NonceManager;
pub use nonce::NonceRecord;
pub use oauth2::AccessToken;
pub use oauth2::AuthorizationCode;
pub use oauth2::CodeChallengeMethod;
pub use oauth2::OAuth2Client;
pub use oauth2::OAuth2Manager;
pub use oauth2::OAuth2TokenInfo;
pub use oauth2::PasswordVerifier;
pub use oauth2::PkceChallenge;
pub use oauth2::TokenIssueRequest;
pub use online::DistributedOnlineStore;
pub use online::InMemoryPusher;
pub use online::LocalOnlineStore;
pub use online::MessagePusher;
pub use online::MessageType;
pub use online::OnlineManager;
pub use online::OnlineStore;
pub use online::OnlineUser;
pub use online::PushMessage;
pub use online::StoredOnlineUser;
pub use permission::AntPermissionMatcher;
pub use permission::ExactMatcher;
pub use permission::PermissionMatcher;
pub use refresh::RefreshTokenManager;
pub use router::AuthFlowResult;
pub use router::PathAuthConfig;
pub use router::extract_token;
pub use router::extract_token_from;
pub use router::match_any;
pub use router::match_path;
pub use router::need_auth;
pub use router::run_auth_flow;
pub use safe::DEFAULT_SAFE_SERVICE;
pub use safe::SAFE_AUTH_VALUE;
pub use session::SaSession;
pub use session::SaTerminalInfo;
pub use sign::RequestSign;
pub use sign::map_sign_err_to_sso;
pub use sso::CheckTicketResult;
pub use sso::LocalTicketChecker;
pub use sso::NoopSloNotifier;
pub use sso::SloNotifier;
pub use sso::SsoClient;
pub use sso::SsoConfig;
pub use sso::SsoManager;
pub use sso::SsoServer;
pub use sso::SsoSession;
pub use sso::SsoTicket;
pub use sso::SsoTicketStore;
pub use sso::TicketChecker;
pub use sso::HttpSloNotifier;
pub use sso::HttpTicketChecker;
pub use stp_logic::SaLogic;
pub use temp_token::DEFAULT_NAMESPACE as TEMP_TOKEN_DEFAULT_NAMESPACE;
pub use temp_token::TempTokenManager;
pub use temp_token::TempTokenRecord;
pub use token::JwtAlgorithm;
pub use token::JwtClaims;
pub use token::JwtManager;
pub use token::TokenInfo;
pub use token::TokenValue;
pub use token::generate_unique;
pub use token::intern_login_type;
pub use token_io::apply_token_prefix;
pub use token_io::read_token;
pub use ws::DefaultWsTokenExtractor;
pub use ws::WsAuthInfo;
pub use ws::WsAuthManager;
pub use ws::WsTokenExtractor;

Modules§

cleanup
Optional background cleanup for backends without TTL. 无 TTL 后端的可选后台清理。
codec
Pluggable serialization helpers | 可插拔序列化辅助函数
config
配置模块 | Configuration module
context
Request Context | 请求上下文
dao
存储访问唯一收口:storage × serializer × keys。
disable
Account / Service Ban | 账号/服务封禁
distributed
Distributed Session Management Module | 分布式 Session 管理模块
error
Error type definitions | 错误类型定义
event
Event Listener Module | 事件监听模块
http_basic
HTTP Basic credential check against the current request’s Authorization header. 基于当前请求 Authorization 头的 HTTP Basic 凭据校验。
keys
Unified Storage Key Construction | 存储键统一构造(P3)
nonce
Nonce Manager | Nonce 管理器
oauth2
OAuth2 authorization-code / refresh / password / client-credentials. OAuth2 授权码 / 刷新 / 密码 / 客户端凭证。
online
Online users and realtime push. 在线用户与实时推送。
permission
Permission Matching | 权限匹配
prelude
Common re-exports | 常用类型重导出
refresh
Refresh Token Module | Refresh Token 模块
repository
仓储层:按数据域划分的存储读写封装。
router
Path-based auth routing | 基于路径的鉴权路由
safe
Secondary authentication (safe window). 二级认证(安全窗口)。
same_token
Same-Token: shared secret for intra-cluster / gateway-to-service calls. Same-Token:集群内 / 网关到服务 调用使用的共享口令。
service
服务层:跨仓储的业务编排与事务补偿。
session
Session 管理模块
sign
HMAC-SHA256 request signing (timestamp + optional nonce). HMAC-SHA256 请求签名(时间戳 + 可选 nonce)。
sso
SSO single sign-on: tickets, sessions, signing, SLO. SSO 单点登录:票据、会话、签名、统一登出。
stp_interface
Permission / Role / Ban Data Source | 权限、角色、封禁数据源
stp_logic
多账号体系门面:绑定 login_type + Manager 克隆(内部字段均为 Arc,Clone 廉价)。 Multi-account facade: binds login_type + a cloned Manager (fields are Arc; Clone is cheap). 无进程级 HashMap,避免与 Manager 形成引用环。 No process-wide HashMap, avoiding a reference cycle with Manager.
temp_token
Short-lived tokens that carry a business value (share links, one-shot actions). 携带业务值的短时令牌(分享链接、一次性操作授权)。
token
Token 管理模块
token_io
Unified token read/write helpers for HTTP adapters. HTTP 适配器用的统一 token 读写助手。
token_session
Token-Session 双轨(独立于 Account-Session)。
util
StpUtil — static façade over the process-wide SaTokenManager. StpUtil —— 进程内全局 SaTokenManager 的静态门面。
ws
WebSocket Authentication Module | WebSocket 认证模块

Structs§

ForySerializer
fory binary serializer (feature fory) | fory 二进制序列化器
JsonSerializer
Default JSON serializer | 默认 JSON 序列化器
SaTokenManager
sa-token 管理器:对外 API 门面,业务逻辑委托给 service / repository 层。

Enums§

SharedSerializer
Shared serializer handle (Clone-friendly enum) | 共享序列化器句柄(Clone 友好枚举)
ValueKind
Storage value encoding format | 存储值编码格式

Traits§

SaSerializer
Pluggable serializer: domain object ↔ storage string | 可插拔序列化器:领域对象 ↔ 存储字符串