pub struct SaLogic { /* private fields */ }Expand description
绑定某一 login_type 的账号逻辑门面 Account-logic facade bound to one login_type
Implementations§
Source§impl SaLogic
impl SaLogic
Sourcepub fn new(login_type: impl AsRef<str>, manager: SaTokenManager) -> SaLogic
pub fn new(login_type: impl AsRef<str>, manager: SaTokenManager) -> SaLogic
创建门面(廉价 Clone) Create facade (cheap to Clone)
Sourcepub fn login_type(&self) -> &str
pub fn login_type(&self) -> &str
Account system / login type | 账号体系/登录类型
Sourcepub fn manager(&self) -> &SaTokenManager
pub fn manager(&self) -> &SaTokenManager
Underlying manager | 底层管理器
Sourcepub async fn login(
&self,
login_id: impl Into<String>,
) -> Result<TokenValue, SaTokenError>
pub async fn login( &self, login_id: impl Into<String>, ) -> Result<TokenValue, SaTokenError>
Login and issue a token | 登录并签发 Token
Sourcepub async fn login_with_device(
&self,
login_id: impl Into<String>,
device: Option<String>,
extra: Option<Value>,
) -> Result<TokenValue, SaTokenError>
pub async fn login_with_device( &self, login_id: impl Into<String>, device: Option<String>, extra: Option<Value>, ) -> Result<TokenValue, SaTokenError>
Login with device label | 带设备标识登录
Sourcepub async fn logout(&self, token: &TokenValue) -> Result<(), SaTokenError>
pub async fn logout(&self, token: &TokenValue) -> Result<(), SaTokenError>
Logout current token | 登出当前 Token
Sourcepub async fn logout_by_login_id(
&self,
login_id: &str,
) -> Result<(), SaTokenError>
pub async fn logout_by_login_id( &self, login_id: &str, ) -> Result<(), SaTokenError>
Logout all tokens of a login id | 登出某登录 ID 的全部 Token
Sourcepub async fn kick_out(&self, login_id: &str) -> Result<(), SaTokenError>
pub async fn kick_out(&self, login_id: &str) -> Result<(), SaTokenError>
Kick out and optionally notify | 踢下线并可通知
Sourcepub async fn get_login_id(
&self,
token: &TokenValue,
) -> Result<String, SaTokenError>
pub async fn get_login_id( &self, token: &TokenValue, ) -> Result<String, SaTokenError>
Resolve login id from token | 从 Token 解析登录 ID
Sourcepub async fn is_valid(&self, token: &TokenValue) -> bool
pub async fn is_valid(&self, token: &TokenValue) -> bool
Whether the token is valid | Token 是否有效
Sourcepub async fn get_session(
&self,
login_id: &str,
) -> Result<SaSession, SaTokenError>
pub async fn get_session( &self, login_id: &str, ) -> Result<SaSession, SaTokenError>
Load account session | 加载账号 Session
Sourcepub async fn save_session(
&self,
login_id: &str,
session: &SaSession,
) -> Result<(), SaTokenError>
pub async fn save_session( &self, login_id: &str, session: &SaSession, ) -> Result<(), SaTokenError>
Persist account session | 持久化账号 Session
Sourcepub async fn delete_session(&self, login_id: &str) -> Result<(), SaTokenError>
pub async fn delete_session(&self, login_id: &str) -> Result<(), SaTokenError>
Delete account session | 删除账号 Session
Sourcepub async fn get_terminal_list(
&self,
login_id: &str,
device_type: Option<&str>,
) -> Result<Vec<SaTerminalInfo>, SaTokenError>
pub async fn get_terminal_list( &self, login_id: &str, device_type: Option<&str>, ) -> Result<Vec<SaTerminalInfo>, SaTokenError>
List terminals for the account | 列出账号终端
Sourcepub async fn get_terminal_info_by_token(
&self,
token: &TokenValue,
) -> Result<Option<SaTerminalInfo>, SaTokenError>
pub async fn get_terminal_info_by_token( &self, token: &TokenValue, ) -> Result<Option<SaTerminalInfo>, SaTokenError>
Terminal info for a token | 按 Token 查终端信息
Sourcepub async fn get_permissions(
&self,
login_id: &str,
) -> Result<Vec<String>, SaTokenError>
pub async fn get_permissions( &self, login_id: &str, ) -> Result<Vec<String>, SaTokenError>
获取权限列表 | Permission list
Sourcepub async fn set_permissions(
&self,
login_id: &str,
perms: Vec<String>,
) -> Result<(), SaTokenError>
pub async fn set_permissions( &self, login_id: &str, perms: Vec<String>, ) -> Result<(), SaTokenError>
覆盖权限列表 | Overwrite the permission list
Sourcepub async fn add_permission(
&self,
login_id: &str,
permission: impl Into<String>,
) -> Result<(), SaTokenError>
pub async fn add_permission( &self, login_id: &str, permission: impl Into<String>, ) -> Result<(), SaTokenError>
追加单个权限(B2-35 新增)| Append one permission (new)
Sourcepub async fn remove_permission(
&self,
login_id: &str,
permission: &str,
) -> Result<(), SaTokenError>
pub async fn remove_permission( &self, login_id: &str, permission: &str, ) -> Result<(), SaTokenError>
移除单个权限(B2-35 新增)| Remove one permission (new)
Sourcepub async fn clear_permissions(
&self,
login_id: &str,
) -> Result<(), SaTokenError>
pub async fn clear_permissions( &self, login_id: &str, ) -> Result<(), SaTokenError>
清空权限(B2-35 新增)| Clear permissions (new)
Sourcepub async fn has_permission(
&self,
login_id: &str,
permission: &str,
) -> Result<bool, SaTokenError>
pub async fn has_permission( &self, login_id: &str, permission: &str, ) -> Result<bool, SaTokenError>
单个权限校验(B2-27 新增)| Single permission check (new)
Sourcepub async fn check_permission(
&self,
login_id: &str,
permission: &str,
) -> Result<(), SaTokenError>
pub async fn check_permission( &self, login_id: &str, permission: &str, ) -> Result<(), SaTokenError>
权限校验,不足则返回 Err(B2-27 新增)| Permission check returning Err (new)
Sourcepub async fn has_all_permissions(
&self,
login_id: &str,
permissions: &[&str],
) -> Result<bool, SaTokenError>
pub async fn has_all_permissions( &self, login_id: &str, permissions: &[&str], ) -> Result<bool, SaTokenError>
批量权限校验(AND,B2-27 新增)| Batch AND permission check (new)
Sourcepub async fn has_any_permission(
&self,
login_id: &str,
permissions: &[&str],
) -> Result<bool, SaTokenError>
pub async fn has_any_permission( &self, login_id: &str, permissions: &[&str], ) -> Result<bool, SaTokenError>
批量权限校验(OR,B2-27 新增)| Batch OR permission check (new)
Sourcepub async fn get_roles(
&self,
login_id: &str,
) -> Result<Vec<String>, SaTokenError>
pub async fn get_roles( &self, login_id: &str, ) -> Result<Vec<String>, SaTokenError>
获取角色列表 | Role list
Sourcepub async fn set_roles(
&self,
login_id: &str,
roles: Vec<String>,
) -> Result<(), SaTokenError>
pub async fn set_roles( &self, login_id: &str, roles: Vec<String>, ) -> Result<(), SaTokenError>
覆盖角色列表 | Overwrite the role list
Sourcepub async fn add_role(
&self,
login_id: &str,
role: impl Into<String>,
) -> Result<(), SaTokenError>
pub async fn add_role( &self, login_id: &str, role: impl Into<String>, ) -> Result<(), SaTokenError>
追加单个角色(B2-35 新增)| Append one role (new)
Sourcepub async fn remove_role(
&self,
login_id: &str,
role: &str,
) -> Result<(), SaTokenError>
pub async fn remove_role( &self, login_id: &str, role: &str, ) -> Result<(), SaTokenError>
移除单个角色(B2-35 新增)| Remove one role (new)
Sourcepub async fn clear_roles(&self, login_id: &str) -> Result<(), SaTokenError>
pub async fn clear_roles(&self, login_id: &str) -> Result<(), SaTokenError>
清空角色(B2-35 新增)| Clear roles (new)
Sourcepub async fn has_role(
&self,
login_id: &str,
role: &str,
) -> Result<bool, SaTokenError>
pub async fn has_role( &self, login_id: &str, role: &str, ) -> Result<bool, SaTokenError>
单个角色校验(B2-27 新增)| Single role check (new)
Sourcepub async fn check_role(
&self,
login_id: &str,
role: &str,
) -> Result<(), SaTokenError>
pub async fn check_role( &self, login_id: &str, role: &str, ) -> Result<(), SaTokenError>
角色校验,不足则返回 Err(B2-27 新增)| Role check returning Err (new)
Sourcepub async fn has_all_roles(
&self,
login_id: &str,
roles: &[&str],
) -> Result<bool, SaTokenError>
pub async fn has_all_roles( &self, login_id: &str, roles: &[&str], ) -> Result<bool, SaTokenError>
批量角色校验(AND,B2-27 新增)| Batch AND role check (new)
Sourcepub async fn has_any_role(
&self,
login_id: &str,
roles: &[&str],
) -> Result<bool, SaTokenError>
pub async fn has_any_role( &self, login_id: &str, roles: &[&str], ) -> Result<bool, SaTokenError>
批量角色校验(OR,B2-27 新增)| Batch OR role check (new)
Sourcepub async fn disable(
&self,
login_id: &str,
time: i64,
) -> Result<(), SaTokenError>
pub async fn disable( &self, login_id: &str, time: i64, ) -> Result<(), SaTokenError>
Disable account/service | 禁用账号或服务
Sourcepub async fn disable_level(
&self,
login_id: &str,
service: &str,
level: i32,
time: i64,
) -> Result<(), SaTokenError>
pub async fn disable_level( &self, login_id: &str, service: &str, level: i32, time: i64, ) -> Result<(), SaTokenError>
Disable at a level (default login type) | 分级禁用(默认登录类型)
Sourcepub async fn check_disable(&self, login_id: &str) -> Result<(), SaTokenError>
pub async fn check_disable(&self, login_id: &str) -> Result<(), SaTokenError>
Fail if account is disabled | 账号被禁用则报错
Sourcepub async fn get_disable_level(
&self,
login_id: &str,
service: &str,
) -> Result<i32, SaTokenError>
pub async fn get_disable_level( &self, login_id: &str, service: &str, ) -> Result<i32, SaTokenError>
Read disable level | 读取禁用等级
Sourcepub async fn untie_disable(
&self,
login_id: &str,
service: &str,
) -> Result<(), SaTokenError>
pub async fn untie_disable( &self, login_id: &str, service: &str, ) -> Result<(), SaTokenError>
Clear disable flag | 解除禁用
Sourcepub async fn open_safe(
&self,
token: &TokenValue,
service: &str,
safe_time: i64,
) -> Result<(), SaTokenError>
pub async fn open_safe( &self, token: &TokenValue, service: &str, safe_time: i64, ) -> Result<(), SaTokenError>
Open secondary auth window | 开启二级认证窗口
Sourcepub async fn check_safe(
&self,
token: &TokenValue,
service: &str,
) -> Result<(), SaTokenError>
pub async fn check_safe( &self, token: &TokenValue, service: &str, ) -> Result<(), SaTokenError>
Fail if secondary auth missing | 未通过二级认证则报错
Sourcepub async fn is_safe(
&self,
token: &TokenValue,
service: &str,
) -> Result<bool, SaTokenError>
pub async fn is_safe( &self, token: &TokenValue, service: &str, ) -> Result<bool, SaTokenError>
Whether secondary auth is active | 二级认证是否有效
Sourcepub async fn close_safe(
&self,
token: &TokenValue,
service: &str,
) -> Result<(), SaTokenError>
pub async fn close_safe( &self, token: &TokenValue, service: &str, ) -> Result<(), SaTokenError>
Close secondary auth window | 关闭二级认证窗口
Sourcepub async fn get_token_session(
&self,
token: &TokenValue,
) -> Result<SaSession, SaTokenError>
pub async fn get_token_session( &self, token: &TokenValue, ) -> Result<SaSession, SaTokenError>
Load token-scoped session | 加载 Token 级 Session
Sourcepub async fn get_anon_token_session(
&self,
token: &TokenValue,
) -> Result<SaSession, SaTokenError>
pub async fn get_anon_token_session( &self, token: &TokenValue, ) -> Result<SaSession, SaTokenError>
Load anonymous token session | 加载匿名 Token Session
Sourcepub async fn save_token_session(
&self,
token: &TokenValue,
session: &SaSession,
) -> Result<(), SaTokenError>
pub async fn save_token_session( &self, token: &TokenValue, session: &SaSession, ) -> Result<(), SaTokenError>
save_token_session — save token session | save_token_session
Sourcepub async fn delete_token_session(
&self,
token: &TokenValue,
) -> Result<(), SaTokenError>
pub async fn delete_token_session( &self, token: &TokenValue, ) -> Result<(), SaTokenError>
delete_token_session — delete token session | delete_token_session
Sourcepub fn switch_to(&self, login_id: impl Into<String>)
pub fn switch_to(&self, login_id: impl Into<String>)
必须走 B3 单轨突变,否则 task-local 路径静默失效。 Must use B3 single-track mutation or task-local switch silently fails.
Sourcepub fn end_switch(&self)
pub fn end_switch(&self)
End identity switch | 结束身份切换
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for SaLogic
impl !UnwindSafe for SaLogic
impl Freeze for SaLogic
impl Send for SaLogic
impl Sync for SaLogic
impl Unpin for SaLogic
impl UnsafeUnpin for SaLogic
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more