# 2026-06-08 登录页 IP 优先检测 ## 摘要 登录页 `/app/#/login` 严格按「先检测 IP → 再展示界面」:`checking` 期间仅深色底;非白名单或检测失败仅壁纸;白名单通过后再加载壁纸并显示登录卡。 ## 动机 - 避免 IP 检测与壁纸请求并行导致时序模糊 - 网络/5xx 时不再 fail-open 露出登录框(与白名单拒绝一致,fail-closed) ## 涉及文件 - `frontend/src/pages/LoginPage.vue` ## 行为 | 阶段 | 界面 | |------|------| | `checking` | 深色底,无登录卡 | | `blocked`(403 或任意非 200) | Bing 壁纸 + 遮罩,无登录卡、无提示 | | `form`(200 allowed) | 壁纸 + 登录卡 | ## 迁移/重启 - 需重新构建并部署前端静态资源 ## 验证 1. 非白名单 IP:`GET /api/auth/login-access` → 403;页面仅壁纸 2. 白名单 IP:`login-access` → 200;页面出现登录卡 3. `bash scripts/local_verify.sh`(后端 login-access 测试)