pub struct RTokenManager { /* private fields */ }Expand description
Token Manager | Token 管理器
RTokenManager is the core component of r-token library, responsible for managing user token lifecycle.
RTokenManager 是 r-token 库的核心组件,负责管理用户的 Token 生命周期。
§Features | 特点
- Thread-safe | 线程安全: Safe multi-threaded access with
Arc<Mutex<HashMap>>| 使用Arc<Mutex<HashMap>>实现多线程环境下的安全访问 - Cloneable | 可克隆: Implements
Clonetrait for sharing acrossactix-webworkers | 实现了Clonetrait,可以在多个actix-webworker 之间共享 - Simple | 简单易用: Provides two core methods:
loginandlogout| 提供login和logout两个核心方法
§Example | 示例
use r_token::RTokenManager;
let manager = RTokenManager::new();
let token = manager.login("user123");
println!("Generated token: {}", token);
// Later... | 稍后...
manager.logout(&token);Implementations§
Source§impl RTokenManager
impl RTokenManager
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new Token Manager instance | 创建一个新的 Token 管理器实例
This method initializes an empty token storage. In an actix-web application,
it’s typically called once in the main function, then injected into the app via app_data.
这个方法会初始化一个空的 Token 存储。在 actix-web 应用中,
通常在 main 函数中调用一次,然后通过 app_data 注入到应用中。
§Example | 示例
use r_token::RTokenManager;
use actix_web::{web, App};
let manager = RTokenManager::new();
// Usage in actix-web | 在 actix-web 中使用
// App::new().app_data(web::Data::new(manager.clone()))Sourcepub fn login(&self, id: &str) -> String
pub fn login(&self, id: &str) -> String
User login: Generate and store Token | 用户登录:生成 Token 并存储
This method will: | 此方法会:
- Generate a new UUID v4 as Token | 生成一个新的 UUID v4 作为 Token
- Store the mapping between Token and User ID in memory | 将 Token 和用户 ID 的映射关系存入内存
- Return the generated Token string | 返回生成的 Token 字符串
§Parameters | 参数
id: User’s unique identifier (usually user ID) | 用户的唯一标识符(通常是用户 ID)
§Returns | 返回值
Returns a newly generated Token string (UUID v4 format) | 返回一个新生成的 Token 字符串(UUID v4 格式)
§Example | 示例
use r_token::RTokenManager;
let manager = RTokenManager::new();
let token = manager.login("user123");
assert!(!token.is_empty());Sourcepub fn logout(&self, token: &str)
pub fn logout(&self, token: &str)
User logout: Remove Token | 用户登出:移除 Token
This method removes the specified Token from memory, invalidating it.
Invalidated tokens will fail validation through the RUser extractor.
此方法会从内存中删除指定的 Token,使其失效。
失效后的 Token 将无法通过 RUser extractor 的验证。
§Parameters | 参数
token: The Token string to invalidate | 要注销的 Token 字符串
§Example | 示例
use r_token::RTokenManager;
let manager = RTokenManager::new();
let token = manager.login("user123");
// User logout | 用户登出
manager.logout(&token);
// Token is now invalid | 此时 token 已失效Trait Implementations§
Source§impl Clone for RTokenManager
impl Clone for RTokenManager
Source§fn clone(&self) -> RTokenManager
fn clone(&self) -> RTokenManager
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more