pub struct SaTokenManager {
pub config: SaTokenConfig,
/* private fields */
}Expand description
sa-token 管理器
Fields§
§config: SaTokenConfigImplementations§
Source§impl SaTokenManager
impl SaTokenManager
Sourcepub fn new(storage: Arc<dyn SaStorage>, config: SaTokenConfig) -> Self
pub fn new(storage: Arc<dyn SaStorage>, config: SaTokenConfig) -> Self
创建新的管理器实例
pub fn with_online_manager(self, manager: Arc<OnlineManager>) -> Self
pub fn with_distributed_manager( self, manager: Arc<DistributedSessionManager>, ) -> Self
pub fn online_manager(&self) -> Option<&Arc<OnlineManager>>
pub fn distributed_manager(&self) -> Option<&Arc<DistributedSessionManager>>
Sourcepub fn event_bus(&self) -> &SaTokenEventBus
pub fn event_bus(&self) -> &SaTokenEventBus
获取事件总线的引用
Sourcepub async fn login(
&self,
login_id: impl Into<String>,
) -> SaTokenResult<TokenValue>
pub async fn login( &self, login_id: impl Into<String>, ) -> SaTokenResult<TokenValue>
登录:为指定账号创建 token
Sourcepub async fn login_with_options(
&self,
login_id: impl Into<String>,
login_type: Option<String>,
device: Option<String>,
extra_data: Option<Value>,
nonce: Option<String>,
expire_time: Option<DateTime<Utc>>,
) -> SaTokenResult<TokenValue>
pub async fn login_with_options( &self, login_id: impl Into<String>, login_type: Option<String>, device: Option<String>, extra_data: Option<Value>, nonce: Option<String>, expire_time: Option<DateTime<Utc>>, ) -> SaTokenResult<TokenValue>
登录:为指定账号创建 token(支持自定义 TokenInfo 字段)
§参数 | Parameters
login_id- 登录用户 ID | Login user IDlogin_type- 登录类型(如 “user”, “admin”)| Login type (e.g., “user”, “admin”)device- 设备标识 | Device identifierextra_data- 额外数据 | Extra datanonce- 防重放攻击的一次性令牌 | One-time token for replay attack preventionexpire_time- 自定义过期时间(如果为 None,则使用配置的过期时间)| Custom expiration time (if None, use configured timeout)
§示例 | Example
ⓘ
let token = manager.login_with_options(
"user_123",
Some("admin".to_string()),
Some("iPhone".to_string()),
Some(json!({"ip": "192.168.1.1"})),
Some("nonce_123".to_string()),
None,
).await?;Sourcepub async fn login_with_token_info(
&self,
token_info: TokenInfo,
) -> SaTokenResult<TokenValue>
pub async fn login_with_token_info( &self, token_info: TokenInfo, ) -> SaTokenResult<TokenValue>
登录:使用完整的 TokenInfo 对象创建 token
§参数 | Parameters
token_info- 完整的 TokenInfo 对象,包含所有 token 信息 | Complete TokenInfo object containing all token information
§说明 | Notes
- TokenInfo 中的
token字段将被使用(如果已设置),否则会自动生成 - TokenInfo 中的
login_id字段必须设置 - 如果
expire_time为 None,将使用配置的过期时间 - The
tokenfield in TokenInfo will be used (if set), otherwise will be auto-generated - The
login_idfield in TokenInfo must be set - If
expire_timeis None, will use configured timeout
§示例 | Example
ⓘ
use sa_token_core::token::{TokenInfo, TokenValue};
use chrono::Utc;
let mut token_info = TokenInfo::new(
TokenValue::new("custom_token_123"),
"user_123"
);
token_info.login_type = "admin".to_string();
token_info.device = Some("iPhone".to_string());
token_info.extra_data = Some(json!({"ip": "192.168.1.1"}));
let token = manager.login_with_token_info(token_info).await?;Sourcepub async fn logout(&self, token: &TokenValue) -> SaTokenResult<()>
pub async fn logout(&self, token: &TokenValue) -> SaTokenResult<()>
登出:删除指定 token
Sourcepub async fn logout_by_login_id(&self, login_id: &str) -> SaTokenResult<()>
pub async fn logout_by_login_id(&self, login_id: &str) -> SaTokenResult<()>
根据登录 ID 登出所有 token
Sourcepub async fn get_token_info(
&self,
token: &TokenValue,
) -> SaTokenResult<TokenInfo>
pub async fn get_token_info( &self, token: &TokenValue, ) -> SaTokenResult<TokenInfo>
获取 token 信息
Sourcepub async fn is_valid(&self, token: &TokenValue) -> bool
pub async fn is_valid(&self, token: &TokenValue) -> bool
检查 token 是否有效
Sourcepub async fn get_session(&self, login_id: &str) -> SaTokenResult<SaSession>
pub async fn get_session(&self, login_id: &str) -> SaTokenResult<SaSession>
获取 session
Sourcepub async fn save_session(&self, session: &SaSession) -> SaTokenResult<()>
pub async fn save_session(&self, session: &SaSession) -> SaTokenResult<()>
保存 session
Sourcepub async fn delete_session(&self, login_id: &str) -> SaTokenResult<()>
pub async fn delete_session(&self, login_id: &str) -> SaTokenResult<()>
删除 session
Sourcepub async fn renew_timeout(
&self,
token: &TokenValue,
timeout_seconds: i64,
) -> SaTokenResult<()>
pub async fn renew_timeout( &self, token: &TokenValue, timeout_seconds: i64, ) -> SaTokenResult<()>
续期 token(重置过期时间)
Sourcepub async fn kick_out(&self, login_id: &str) -> SaTokenResult<()>
pub async fn kick_out(&self, login_id: &str) -> SaTokenResult<()>
踢人下线
Trait Implementations§
Source§impl Clone for SaTokenManager
impl Clone for SaTokenManager
Source§fn clone(&self) -> SaTokenManager
fn clone(&self) -> SaTokenManager
Returns a duplicate of the value. Read more
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for SaTokenManager
impl !RefUnwindSafe for SaTokenManager
impl Send for SaTokenManager
impl Sync for SaTokenManager
impl Unpin for SaTokenManager
impl !UnwindSafe for SaTokenManager
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)