修复 login.rs 中的变量名错误并更新默认 features

- Cargo.toml: 默认启用 web 和 server features
- login.rs: 修复 cookie 设置中的变量名错误 (token -> _token)
- 格式化 login.rs 中的结构体模式匹配

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
xfy 2026-05-26 08:21:11 +08:00
parent cbf19b3f47
commit 401556c24e
2 changed files with 19 additions and 6 deletions

View File

@ -22,7 +22,7 @@ web-sys = { version = "0.3", features = ["Document", "Window", "HtmlDocument", "
wasm-bindgen = "0.2"
[features]
default = []
default = ["web", "server"]
web = ["dioxus/web"]
server = [
"dioxus/server",

View File

@ -19,18 +19,23 @@ pub fn LoginPage() -> Element {
spawn(async move {
match login(username_val, password_val).await {
Ok(AuthResponse { success: true, token: Some(_token), .. }) => {
Ok(AuthResponse {
success: true,
token: Some(_token),
..
}) => {
// 设置 cookie (client-side, not HttpOnly but works for now)
#[cfg(target_arch = "wasm32")]
{
let cookie = format!(
"session={}; path=/; max-age={}; SameSite=Lax",
token,
_token,
30 * 24 * 60 * 60 // 30 days
);
if let Some(window) = web_sys::window() {
if let Some(document) = window.document() {
let _ = document.dyn_into::<web_sys::HtmlDocument>()
let _ = document
.dyn_into::<web_sys::HtmlDocument>()
.map(|d| d.set_cookie(&cookie));
}
}
@ -38,10 +43,18 @@ pub fn LoginPage() -> Element {
// 跳转到 admin 页面
let _ = dioxus::router::navigator().push("/admin");
}
Ok(AuthResponse { success: false, message, .. }) => {
Ok(AuthResponse {
success: false,
message,
..
}) => {
error.set(Some(message));
}
Ok(AuthResponse { success: true, token: None, .. }) => {
Ok(AuthResponse {
success: true,
token: None,
..
}) => {
error.set(Some("登录异常".to_string()));
}
Err(e) => {