pub struct StpUtil;Expand description
StpUtil - 权限认证工具类
提供便捷的认证和授权操作方法,类似于 Java 版 sa-token 的 StpUtil
Implementations§
Source§impl StpUtil
impl StpUtil
Sourcepub fn init_manager(manager: SaTokenManager)
pub fn init_manager(manager: SaTokenManager)
Sourcepub fn event_bus() -> &'static SaTokenEventBus
pub fn event_bus() -> &'static SaTokenEventBus
获取事件总线,用于注册监听器
§示例
use sa_token_core::{StpUtil, SaTokenListener};
use async_trait::async_trait;
struct MyListener;
#[async_trait]
impl SaTokenListener for MyListener {
async fn on_login(&self, login_id: &str, token: &str, login_type: &str) {
println!("用户 {} 登录了", login_id);
}
}
// 注册监听器
StpUtil::event_bus().register(Arc::new(MyListener)).await;Sourcepub fn register_listener(listener: Arc<dyn SaTokenListener>)
pub fn register_listener(listener: Arc<dyn SaTokenListener>)
Sourcepub async fn login(login_id: impl LoginId) -> SaTokenResult<TokenValue>
pub async fn login(login_id: impl LoginId) -> SaTokenResult<TokenValue>
pub async fn login_with_type( login_id: impl LoginId, _login_type: impl Into<String>, ) -> SaTokenResult<TokenValue>
Sourcepub async fn login_with_extra(
login_id: impl LoginId,
extra_data: Value,
) -> SaTokenResult<TokenValue>
pub async fn login_with_extra( login_id: impl LoginId, extra_data: Value, ) -> SaTokenResult<TokenValue>
登录并设置额外数据 | Login with extra data
§参数 | Arguments
login_id- 登录ID | Login IDextra_data- 额外数据 | Extra data
Sourcepub async fn login_with_manager(
manager: &SaTokenManager,
login_id: impl Into<String>,
) -> SaTokenResult<TokenValue>
pub async fn login_with_manager( manager: &SaTokenManager, login_id: impl Into<String>, ) -> SaTokenResult<TokenValue>
会话登录(带 manager 参数的版本,向后兼容)
Sourcepub async fn logout(token: &TokenValue) -> SaTokenResult<()>
pub async fn logout(token: &TokenValue) -> SaTokenResult<()>
会话登出
pub async fn logout_with_manager( manager: &SaTokenManager, token: &TokenValue, ) -> SaTokenResult<()>
Sourcepub async fn kick_out(login_id: impl LoginId) -> SaTokenResult<()>
pub async fn kick_out(login_id: impl LoginId) -> SaTokenResult<()>
踢人下线(根据登录ID)
pub async fn kick_out_with_manager( manager: &SaTokenManager, login_id: &str, ) -> SaTokenResult<()>
Sourcepub async fn logout_by_login_id(login_id: impl LoginId) -> SaTokenResult<()>
pub async fn logout_by_login_id(login_id: impl LoginId) -> SaTokenResult<()>
强制登出(根据登录ID)
Sourcepub async fn logout_by_token(token: &TokenValue) -> SaTokenResult<()>
pub async fn logout_by_token(token: &TokenValue) -> SaTokenResult<()>
根据 token 登出(别名方法,更直观)
Sourcepub fn get_token_value() -> SaTokenResult<TokenValue>
pub fn get_token_value() -> SaTokenResult<TokenValue>
Sourcepub async fn logout_current() -> SaTokenResult<()>
pub async fn logout_current() -> SaTokenResult<()>
Sourcepub fn is_login_current() -> bool
pub fn is_login_current() -> bool
Sourcepub fn check_login_current() -> SaTokenResult<()>
pub fn check_login_current() -> SaTokenResult<()>
Sourcepub async fn get_login_id_as_string() -> SaTokenResult<String>
pub async fn get_login_id_as_string() -> SaTokenResult<String>
Sourcepub async fn get_login_id_as_long() -> SaTokenResult<i64>
pub async fn get_login_id_as_long() -> SaTokenResult<i64>
Sourcepub fn get_token_info_current() -> SaTokenResult<Arc<TokenInfo>>
pub fn get_token_info_current() -> SaTokenResult<Arc<TokenInfo>>
Sourcepub async fn is_login(token: &TokenValue) -> bool
pub async fn is_login(token: &TokenValue) -> bool
检查当前 token 是否已登录
Sourcepub async fn is_login_by_login_id(login_id: impl LoginId) -> bool
pub async fn is_login_by_login_id(login_id: impl LoginId) -> bool
pub async fn is_login_with_manager( manager: &SaTokenManager, token: &TokenValue, ) -> bool
Sourcepub async fn check_login(token: &TokenValue) -> SaTokenResult<()>
pub async fn check_login(token: &TokenValue) -> SaTokenResult<()>
检查当前 token 是否已登录,如果未登录则抛出异常
Sourcepub async fn get_token_info(token: &TokenValue) -> SaTokenResult<TokenInfo>
pub async fn get_token_info(token: &TokenValue) -> SaTokenResult<TokenInfo>
获取 token 信息
Sourcepub async fn get_login_id(token: &TokenValue) -> SaTokenResult<String>
pub async fn get_login_id(token: &TokenValue) -> SaTokenResult<String>
获取当前 token 的登录ID
Sourcepub async fn get_login_id_or_default(
token: &TokenValue,
default: impl Into<String>,
) -> String
pub async fn get_login_id_or_default( token: &TokenValue, default: impl Into<String>, ) -> String
获取当前 token 的登录ID,如果未登录则返回默认值
Sourcepub async fn get_token_by_login_id(
login_id: impl LoginId,
) -> SaTokenResult<TokenValue>
pub async fn get_token_by_login_id( login_id: impl LoginId, ) -> SaTokenResult<TokenValue>
Sourcepub async fn get_all_tokens_by_login_id(
login_id: impl LoginId,
) -> SaTokenResult<Vec<TokenValue>>
pub async fn get_all_tokens_by_login_id( login_id: impl LoginId, ) -> SaTokenResult<Vec<TokenValue>>
Sourcepub async fn get_session(login_id: impl LoginId) -> SaTokenResult<SaSession>
pub async fn get_session(login_id: impl LoginId) -> SaTokenResult<SaSession>
获取当前登录账号的 Session
Sourcepub async fn save_session(session: &SaSession) -> SaTokenResult<()>
pub async fn save_session(session: &SaSession) -> SaTokenResult<()>
保存 Session
Sourcepub async fn delete_session(login_id: impl LoginId) -> SaTokenResult<()>
pub async fn delete_session(login_id: impl LoginId) -> SaTokenResult<()>
删除 Session
Sourcepub async fn set_session_value<T: Serialize>(
login_id: impl LoginId,
key: &str,
value: T,
) -> SaTokenResult<()>
pub async fn set_session_value<T: Serialize>( login_id: impl LoginId, key: &str, value: T, ) -> SaTokenResult<()>
在 Session 中设置值
Sourcepub async fn get_session_value<T: DeserializeOwned>(
login_id: impl LoginId,
key: &str,
) -> SaTokenResult<Option<T>>
pub async fn get_session_value<T: DeserializeOwned>( login_id: impl LoginId, key: &str, ) -> SaTokenResult<Option<T>>
从 Session 中获取值
Sourcepub fn create_token(token_value: impl Into<String>) -> TokenValue
pub fn create_token(token_value: impl Into<String>) -> TokenValue
创建一个新的 token(但不登录)
Sourcepub fn is_valid_token_format(token: &str) -> bool
pub fn is_valid_token_format(token: &str) -> bool
检查 token 格式是否有效(仅检查格式,不检查是否存在于存储中)
Source§impl StpUtil
impl StpUtil
Sourcepub async fn set_permissions(
login_id: impl LoginId,
permissions: Vec<String>,
) -> SaTokenResult<()>
pub async fn set_permissions( login_id: impl LoginId, permissions: Vec<String>, ) -> SaTokenResult<()>
为用户添加权限
Sourcepub async fn add_permission(
login_id: impl LoginId,
permission: impl Into<String>,
) -> SaTokenResult<()>
pub async fn add_permission( login_id: impl LoginId, permission: impl Into<String>, ) -> SaTokenResult<()>
为用户添加单个权限
Sourcepub async fn remove_permission(
login_id: impl LoginId,
permission: &str,
) -> SaTokenResult<()>
pub async fn remove_permission( login_id: impl LoginId, permission: &str, ) -> SaTokenResult<()>
移除用户的某个权限
Sourcepub async fn clear_permissions(login_id: impl LoginId) -> SaTokenResult<()>
pub async fn clear_permissions(login_id: impl LoginId) -> SaTokenResult<()>
清除用户的所有权限
Sourcepub async fn get_permissions(login_id: impl LoginId) -> Vec<String>
pub async fn get_permissions(login_id: impl LoginId) -> Vec<String>
获取用户的所有权限
Sourcepub async fn has_permission(login_id: impl LoginId, permission: &str) -> bool
pub async fn has_permission(login_id: impl LoginId, permission: &str) -> bool
检查用户是否拥有指定权限
Sourcepub async fn has_all_permissions(
login_id: impl LoginId,
permissions: &[&str],
) -> bool
pub async fn has_all_permissions( login_id: impl LoginId, permissions: &[&str], ) -> bool
检查用户是否拥有所有指定权限(AND 逻辑)
Sourcepub async fn has_permissions_and(
login_id: impl LoginId,
permissions: &[&str],
) -> bool
pub async fn has_permissions_and( login_id: impl LoginId, permissions: &[&str], ) -> bool
检查用户是否拥有所有指定权限(别名,AND 逻辑)
Sourcepub async fn has_any_permission(
login_id: impl LoginId,
permissions: &[&str],
) -> bool
pub async fn has_any_permission( login_id: impl LoginId, permissions: &[&str], ) -> bool
检查用户是否拥有任一指定权限(OR 逻辑)
Sourcepub async fn has_permissions_or(
login_id: impl LoginId,
permissions: &[&str],
) -> bool
pub async fn has_permissions_or( login_id: impl LoginId, permissions: &[&str], ) -> bool
检查用户是否拥有任一指定权限(别名,OR 逻辑)
Sourcepub async fn check_permission(
login_id: impl LoginId,
permission: &str,
) -> SaTokenResult<()>
pub async fn check_permission( login_id: impl LoginId, permission: &str, ) -> SaTokenResult<()>
检查权限,如果没有则抛出异常
Source§impl StpUtil
impl StpUtil
Sourcepub async fn set_roles(
login_id: impl LoginId,
roles: Vec<String>,
) -> SaTokenResult<()>
pub async fn set_roles( login_id: impl LoginId, roles: Vec<String>, ) -> SaTokenResult<()>
为用户设置角色
Sourcepub async fn add_role(
login_id: impl LoginId,
role: impl Into<String>,
) -> SaTokenResult<()>
pub async fn add_role( login_id: impl LoginId, role: impl Into<String>, ) -> SaTokenResult<()>
为用户添加单个角色
Sourcepub async fn remove_role(
login_id: impl LoginId,
role: &str,
) -> SaTokenResult<()>
pub async fn remove_role( login_id: impl LoginId, role: &str, ) -> SaTokenResult<()>
移除用户的某个角色
Sourcepub async fn clear_roles(login_id: impl LoginId) -> SaTokenResult<()>
pub async fn clear_roles(login_id: impl LoginId) -> SaTokenResult<()>
清除用户的所有角色
Sourcepub async fn has_all_roles(login_id: impl LoginId, roles: &[&str]) -> bool
pub async fn has_all_roles(login_id: impl LoginId, roles: &[&str]) -> bool
检查用户是否拥有所有指定角色(AND 逻辑)
Sourcepub async fn has_roles_and(login_id: impl LoginId, roles: &[&str]) -> bool
pub async fn has_roles_and(login_id: impl LoginId, roles: &[&str]) -> bool
检查用户是否拥有所有指定角色(别名,AND 逻辑)
Sourcepub async fn has_any_role(login_id: impl LoginId, roles: &[&str]) -> bool
pub async fn has_any_role(login_id: impl LoginId, roles: &[&str]) -> bool
检查用户是否拥有任一指定角色(OR 逻辑)
Sourcepub async fn has_roles_or(login_id: impl LoginId, roles: &[&str]) -> bool
pub async fn has_roles_or(login_id: impl LoginId, roles: &[&str]) -> bool
检查用户是否拥有任一指定角色(别名,OR 逻辑)
Sourcepub async fn check_role(login_id: impl LoginId, role: &str) -> SaTokenResult<()>
pub async fn check_role(login_id: impl LoginId, role: &str) -> SaTokenResult<()>
检查角色,如果没有则抛出异常
Source§impl StpUtil
impl StpUtil
Sourcepub async fn kick_out_batch<T: LoginId>(
login_ids: &[T],
) -> SaTokenResult<Vec<Result<(), SaTokenError>>>
pub async fn kick_out_batch<T: LoginId>( login_ids: &[T], ) -> SaTokenResult<Vec<Result<(), SaTokenError>>>
批量踢人下线
Sourcepub async fn get_token_timeout(token: &TokenValue) -> SaTokenResult<Option<i64>>
pub async fn get_token_timeout(token: &TokenValue) -> SaTokenResult<Option<i64>>
获取 token 剩余有效时间(秒)
Sourcepub async fn renew_timeout(
token: &TokenValue,
timeout_seconds: i64,
) -> SaTokenResult<()>
pub async fn renew_timeout( token: &TokenValue, timeout_seconds: i64, ) -> SaTokenResult<()>
续期 token(重置过期时间)
Sourcepub async fn set_extra_data(
token: &TokenValue,
extra_data: Value,
) -> SaTokenResult<()>
pub async fn set_extra_data( token: &TokenValue, extra_data: Value, ) -> SaTokenResult<()>
设置 Token 的额外数据 | Set extra data for token
§参数 | Arguments
token- Token值 | Token valueextra_data- 额外数据 | Extra data