This commit is contained in:
fengchuanhn@gmail.com
2026-05-16 12:04:31 +08:00
parent f2d33ee356
commit e119327ac2
6 changed files with 77 additions and 1 deletions

View File

@@ -0,0 +1,37 @@
//! 与前端 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<AuthUser>,
}
#[derive(Debug, Default)]
pub struct AuthSession {
inner: Mutex<Inner>,
}
impl AuthSession {
pub fn set(&self, token: String, user: Option<AuthUser>) {
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<AuthUser> {
self.inner.lock().expect("auth session mutex poisoned").user.clone()
}
}