# 48 Admin:进入顺运宝页面不应自动弹验证码框 - 类型:缺陷 - 父级大工单:#14 - 所属 MVP / 版本:#15 / MVP - 状态:已完成 - 日期:2026-08-09 - Gitea 工单: ## 背景与目标 配置顺运宝 OCR 后,操作员进入顺运宝页面仍会立即看到手工验证码弹窗。原因是 OCR 自动登录只发生在点击“同步”之后,而列表页把本地会话无效直接解释成需要打开弹窗。本任务让进入页面保持只读:会话无效时只显示状态提示,只有操作员点击同步且自动登录失败后才打开手工登录弹窗。 ## 最终方案 - `NeedLogin` 只由同步失败重定向携带的 `login_reason` 决定。 - 继续调用 `EnsureSybSession` 判断本地会话状态;该函数未修改,也不会请求外部系统。 - 本地会话无效时,在页面顶部按 `ocr_url` 是否配置显示不同的 `.hint` 提示。 - 保留 #47 的失败原因展示和 #46 的手工登录流程。 与建单方案相比,最终提交没有新增专门测试文件或修改 UI 基线文档;服务端 HTML、五页面响应及真实二进制假配置场景已在实施时验证,后续顺运宝相关任务又补充了覆盖该页面的回归测试和 UI 基线。 ## 改了哪些 - `admin/handler/web/others.go`:把弹窗条件改为由 `login_reason` 驱动,并生成按 OCR 配置区分的未登录提示。 - `admin/templates/syb/list.html`:在列表页显示未登录状态提示,不因本地会话无效自动打开验证码弹窗。 ## 验收结果 | 验收标准 | 结果 | |---|---| | 会话无效时进入 `/syb` 不自动弹登录框 | 通过 | | 已配置和未配置 `ocr_url` 时分别显示准确提示 | 通过 | | 会话有效时不显示未登录提示 | 通过 | | 带 `login_reason` 返回列表页时打开弹窗并显示原因 | 通过 | | 自动登录失败、手工登录及 `EnsureSybSession` 原路径未被破坏 | 通过 | | 状态提示使用 `.hint`,五个页面均可访问 | 通过 | | Go 1.23.0 静态检查和测试通过 | 通过 | ## 测试 - 执行的命令:Go 1.23.0 下执行 `go vet ./...`、`gofmt -l .`、`go test ./... -count=1`;使用真实 Admin 二进制和不可达的假 `base_url`、`ocr_url` 检查页面渲染。 - 结果:静态检查和测试通过;会话无效时页面不弹框,带 `login_reason` 时弹框,OCR 配置为空或非空时提示正确,五个页面均返回 200。 - **没验证到的部分**:未连接真实顺运宝账号;未在用户当前浏览器环境人工确认弹窗和提示的视觉位置。 ## 相关提交 - `6e6e99a` fix: 进入顺运宝页面不再自动弹验证码框 (#48)