sa_token_core/token/
validator.rs

1// Author: 金书记
2//
3//! Token 验证器
4
5use crate::error::{SaTokenError, SaTokenResult};
6use crate::token::TokenInfo;
7
8/// Token 验证器 | Token Validator
9/// 
10/// 用于验证 Token 的有效性和格式
11/// Used to validate token validity and format
12/// 
13/// # 使用示例 | Usage Example
14/// 
15/// ```rust,ignore
16/// use sa_token_core::TokenValidator;
17/// 
18/// // 验证 Token 信息 | Validate token info
19/// TokenValidator::validate(&token_info)?;
20/// 
21/// // 检查 Token 格式 | Check token format
22/// TokenValidator::check_format("my-token-123")?;
23/// ```
24pub struct TokenValidator;
25
26impl TokenValidator {
27    /// 验证 token 是否有效 | Validate if Token is Valid
28    /// 
29    /// 检查 Token 是否过期
30    /// Check if token is expired
31    /// 
32    /// # 参数 | Parameters
33    /// - `token_info`: Token 信息 | Token information
34    /// 
35    /// # 返回 | Returns
36    /// - `Ok(())`: Token 有效 | Token is valid
37    /// - `Err(TokenExpired)`: Token 已过期 | Token has expired
38    pub fn validate(token_info: &TokenInfo) -> SaTokenResult<()> {
39        // 检查是否过期 | Check if expired
40        if token_info.is_expired() {
41            return Err(SaTokenError::TokenExpired);
42        }
43        
44        Ok(())
45    }
46    
47    /// 检查 token 格式是否正确 | Check if Token Format is Correct
48    /// 
49    /// 验证 Token 的基本格式要求
50    /// Validate basic format requirements of token
51    /// 
52    /// # 参数 | Parameters
53    /// - `token`: Token 字符串 | Token string
54    /// 
55    /// # 返回 | Returns
56    /// - `Ok(())`: 格式正确 | Format is correct
57    /// - `Err(TokenEmpty)`: Token 为空 | Token is empty
58    /// - `Err(TokenTooShort)`: Token 太短 | Token is too short
59    pub fn check_format(token: &str) -> SaTokenResult<()> {
60        if token.is_empty() {
61            return Err(SaTokenError::TokenEmpty);
62        }
63        
64        if token.len() < 8 {
65            return Err(SaTokenError::TokenTooShort);
66        }
67        
68        Ok(())
69    }
70}