9a29eb5af6
兩個都是「HTTP 200 看不出來、真的開瀏覽器才會現形」的(規則五點五③)。
① `#/reset?token=…` 被路由正規化吃掉
route() 的第一行是「raw 不在 VIEWS 就換成 HOME」,而 reset 不是站內的 view
⇒ 使用者點信裡的連結,網址被改寫成 `#/search`、修改密碼畫面根本沒出現,
**而且 token 一起被丟掉**——連結一次有效,等於這條連結就這樣廢了。
改:route() 開頭先看有沒有 reset token,有就走 showReset 並 return。
(boot() 那條只顧得到「整頁重新載入」;hash 變動這條路以前沒人守。)
② `.hide` 一直只有三條有 scope 的規則(#tabbar .tab / #sidenav .nav / .modebtn)
沒有通用的 `.hide { display:none }` ⇒ 任何其他元素掛上 class="hide" **完全沒被藏起來**,
看起來有藏、其實沒藏。實測畫面:登入頁還沒按「忘記密碼」就已經露出 email 欄與「寄出連結」;
連結模式下「現有密碼」那一格也照樣顯示(D62 的「差別只有一格」當場破功)。
補通用規則,帶 !important 以蓋過 inline display(#forgot-box 有)。
既有三種用法意圖一致(都是要藏),行為不變。
stage 瀏覽器實測(youlin,playwright):忘記密碼 → 取連結 → 點進去 →
不輸入現有密碼設新密碼 → 自動回登入頁 → 用新密碼登入成功 → 進站 →
設定頁同一份表單(現有密碼那一格回來)改密碼 → **沒有被踢出去、可以繼續操作**。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R8vF2zS2XpaZjzkC75Fjss