pub struct RefreshTokenManager { /* private fields */ }Expand description
Refresh Token 管理器
提供 Refresh Token 的完整生命周期管理,包括生成、验证、轮换和撤销。
§示例
use authrs::token::refresh::{RefreshTokenManager, RefreshConfig, GenerateOptions};
let manager = RefreshTokenManager::new(RefreshConfig::default());
// 生成 Token
let token = manager.generate("user123").await.unwrap();
// 带元数据生成 Token
let options = GenerateOptions::new()
.with_device_info("iPhone 15")
.with_ip_address("192.168.1.1");
let token = manager
.generate_with_options("user123", options)
.await
.unwrap();
// 使用 Token(会自动轮换)
let result = manager.use_token(&token.token).await.unwrap();
if let Some(new_token) = result.new_token {
println!("使用新 Token: {}", new_token.token);
}
// 撤销用户的所有 Token
manager.revoke_all_for_user("user123").await.unwrap();Implementations§
Source§impl RefreshTokenManager
impl RefreshTokenManager
Sourcepub fn new(config: RefreshConfig) -> Self
pub fn new(config: RefreshConfig) -> Self
使用默认内存存储创建管理器
Sourcepub fn with_store(
config: RefreshConfig,
store: Arc<dyn RefreshTokenStore>,
) -> Self
pub fn with_store( config: RefreshConfig, store: Arc<dyn RefreshTokenStore>, ) -> Self
使用自定义存储创建管理器
Sourcepub async fn generate_with_options(
&self,
user_id: impl Into<String>,
options: GenerateOptions,
) -> Result<RefreshToken>
pub async fn generate_with_options( &self, user_id: impl Into<String>, options: GenerateOptions, ) -> Result<RefreshToken>
使用选项生成 Refresh Token
允许设置设备信息、IP 地址和初始元数据。
Sourcepub async fn use_token(&self, token: &str) -> Result<TokenUseResult>
pub async fn use_token(&self, token: &str) -> Result<TokenUseResult>
Sourcepub async fn validate(&self, token: &str) -> Result<RefreshToken>
pub async fn validate(&self, token: &str) -> Result<RefreshToken>
验证 Token
只检查 Token 是否有效,不会使用或轮换 Token。
Sourcepub async fn revoke_family(&self, family_id: &str) -> Result<usize>
pub async fn revoke_family(&self, family_id: &str) -> Result<usize>
撤销 Token 家族
Sourcepub async fn revoke_all_for_user(&self, user_id: &str) -> Result<usize>
pub async fn revoke_all_for_user(&self, user_id: &str) -> Result<usize>
撤销用户的所有 Token
Sourcepub async fn get_user_tokens(&self, user_id: &str) -> Result<Vec<RefreshToken>>
pub async fn get_user_tokens(&self, user_id: &str) -> Result<Vec<RefreshToken>>
获取用户的所有 Token
Sourcepub async fn get_family_tokens(
&self,
family_id: &str,
) -> Result<Vec<RefreshToken>>
pub async fn get_family_tokens( &self, family_id: &str, ) -> Result<Vec<RefreshToken>>
获取 Token 家族的所有 Token
Sourcepub fn config(&self) -> &RefreshConfig
pub fn config(&self) -> &RefreshConfig
获取配置
Auto Trait Implementations§
impl Freeze for RefreshTokenManager
impl !RefUnwindSafe for RefreshTokenManager
impl Send for RefreshTokenManager
impl Sync for RefreshTokenManager
impl Unpin for RefreshTokenManager
impl !UnwindSafe for RefreshTokenManager
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
Mutably borrows from an owned value. Read more