pub struct WsAuthManager { /* private fields */ }Expand description
WebSocket authentication manager WebSocket 认证管理器
Provides authentication and verification for WebSocket connections 为 WebSocket 连接提供认证和验证功能
Implementations§
Source§impl WsAuthManager
impl WsAuthManager
Sourcepub fn new(manager: Arc<SaTokenManager>) -> Self
pub fn new(manager: Arc<SaTokenManager>) -> Self
Sourcepub fn with_extractor(
manager: Arc<SaTokenManager>,
extractor: Arc<dyn WsTokenExtractor>,
) -> Self
pub fn with_extractor( manager: Arc<SaTokenManager>, extractor: Arc<dyn WsTokenExtractor>, ) -> Self
Create a new WebSocket authentication manager with custom extractor 使用自定义提取器创建新的 WebSocket 认证管理器
§Arguments | 参数
manager- SaToken manager instance | SaToken 管理器实例extractor- Custom token extractor | 自定义 Token 提取器
§Example | 示例
ⓘ
let custom_extractor = Arc::new(MyCustomExtractor);
let ws_auth = WsAuthManager::with_extractor(manager, custom_extractor);Sourcepub async fn authenticate(
&self,
headers: &HashMap<String, String>,
query: &HashMap<String, String>,
) -> Result<WsAuthInfo, SaTokenError>
pub async fn authenticate( &self, headers: &HashMap<String, String>, query: &HashMap<String, String>, ) -> Result<WsAuthInfo, SaTokenError>
Authenticate a WebSocket connection 认证 WebSocket 连接
This method will trigger a Login event after successful authentication 此方法在认证成功后会触发 Login 事件
§Arguments | 参数
headers- HTTP headers from the WebSocket handshake | WebSocket 握手的 HTTP 请求头query- Query parameters from the connection URL | 连接 URL 的查询参数
§Returns | 返回值
Ok(WsAuthInfo)- Authentication successful | 认证成功Err(SaTokenError)- Authentication failed | 认证失败
§Errors | 错误
NotLogin- No token found | 未找到 TokenTokenNotFound- Token not found in storage | 存储中未找到 TokenTokenExpired- Token has expired | Token 已过期
§Events | 事件
Publishes SaTokenEvent::Login with login_type = “websocket”
发布 SaTokenEvent::Login 事件,login_type = “websocket”
§Example | 示例
ⓘ
let mut headers = HashMap::new();
headers.insert("Authorization".to_string(), "Bearer token123".to_string());
let auth_info = ws_auth.authenticate(&headers, &HashMap::new()).await?;
println!("User {} connected", auth_info.login_id);
// Event listeners will be notified of WebSocket authentication
// 事件监听器将收到 WebSocket 认证通知Sourcepub async fn verify_token(&self, token: &str) -> Result<String, SaTokenError>
pub async fn verify_token(&self, token: &str) -> Result<String, SaTokenError>
Verify a token and return the login ID 验证 Token 并返回登录 ID
§Arguments | 参数
token- Token string to verify | 要验证的 Token 字符串
§Returns | 返回值
Ok(login_id)- Token is valid | Token 有效Err(SaTokenError)- Token is invalid or expired | Token 无效或已过期
§Example | 示例
ⓘ
let login_id = ws_auth.verify_token("token123").await?;
println!("Token belongs to user: {}", login_id);Sourcepub async fn refresh_ws_session(
&self,
auth_info: &WsAuthInfo,
) -> Result<(), SaTokenError>
pub async fn refresh_ws_session( &self, auth_info: &WsAuthInfo, ) -> Result<(), SaTokenError>
Refresh a WebSocket session by verifying its token 通过验证 Token 刷新 WebSocket 会话
§Arguments | 参数
auth_info- WebSocket authentication info | WebSocket 认证信息
§Returns | 返回值
Ok(())- Session refreshed successfully | 会话刷新成功Err(SaTokenError)- Token is invalid or expired | Token 无效或已过期
§Example | 示例
ⓘ
ws_auth.refresh_ws_session(&auth_info).await?;Auto Trait Implementations§
impl Freeze for WsAuthManager
impl !RefUnwindSafe for WsAuthManager
impl Send for WsAuthManager
impl Sync for WsAuthManager
impl Unpin for WsAuthManager
impl !UnwindSafe for WsAuthManager
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