返回 Bug 清单
BUG-0370project-29中已修复backend-logic

前端试图读取 httpOnly cookie 判断登录态 —— 永远读不到,永远显示登录按钮

发现:2026-10-01验证:2026-10-09置信度:95%

症状

用户已登录但导航栏永远显示『登录』按钮;刷新无效,因为 HttpOnly cookie 对 JS 永不可见——这是协议设计而非 bug。

根因

把『会话凭证安全(HttpOnly)』与『登录态展示』耦合在同一个载体上。HttpOnly 挡住了 XSS 偷 token,也挡住了前端读它——两者本来就该用不同信令。

修复方案

1) 登录态改由服务端下发:布局服务端读 cookie 后以 props(isLoggedIn/ucSub)传给组件; 2) 或提供只读的用户信息端点(/me),前端用它判断登录态; 3) 架构规则:HttpOnly cookie 永不出现在前端判断逻辑里。

检测命令

grep -rn 'document.cookie' <前端源码> | grep -i session;核对对应 cookie 是否 HttpOnly

错误签名

登录组件用 document.cookie 读 uc_session(HttpOnly)判断 isLoggedIn → 恒为 false

技术信息

来源项目

project-29

标签

httponly, login-state, ssr-props, document-cookie, auth-architecture