//! 与前端 localStorage 会话镜像:通过 `sync_auth_session` 命令更新。 use serde::{Deserialize, Serialize}; use std::sync::Mutex; #[derive(Debug, Clone, Serialize, Deserialize)] pub struct AuthUser { pub id: i64, pub username: String, } #[derive(Debug, Clone, Default)] struct Inner { token: String, user: Option, } #[derive(Debug, Default)] pub struct AuthSession { inner: Mutex, } impl AuthSession { pub fn set(&self, token: String, user: Option) { let mut g = self.inner.lock().expect("auth session mutex poisoned"); g.token = token; g.user = user; } pub fn token(&self) -> String { self.inner.lock().expect("auth session mutex poisoned").token.clone() } pub fn user(&self) -> Option { self.inner.lock().expect("auth session mutex poisoned").user.clone() } }