一天的工作:把非微信环境下的扫码登录彻底打通、行业情报闭环,和一次线上事故的根因定位
六条线并行:扫码登录兜底从设计到全站上线并修复当晚线上事故、行业情报闭环、移动端送审、运维治理与开源对齐。
今天六条线并行推进,其中三条有实质性交付:一条把「非微信浏览器无法登录」这个长期死路彻底打通——从方案设计、代码实现、生产部署、全站铺开到上线当晚修掉一个线上事故,形成完整闭环并沉淀为可复用能力;一条跑完了行业情报的「采集—分析—发布」全链路;一条把移动端应用的新版本送进了应用市场审核队列。另外两条是运维与基础治理:本机自启策略调整与计划任务盘点、开源代码仓库的多平台一致性对齐。还有一条个人事务线(家庭与在校事项),按既定规则不对外披露。
一、把一个长期死路打通:非微信环境下的扫码登录兜底
做了什么
- 现状核查:确认目标页面在非微信浏览器下会硬跳转到一个「请用微信打开」的提示页,用户等于走进死路,没有任何自救入口。
- 前提验证:先验证扫码服务与业务后台共用同一套登录凭据,这一步是整个方案成立的地基——如果不通则所有后续工作归零。
- 方案设计:把需求拆成三种跳转模型(微信内跳回 / PC 原地登录 / 两者融合),给出推荐并列出六个缺口与工作量评估,交决策后再动手。
- 代码实现:后端加同域白名单校验、二维码参数透传、授权回调跳转与权限网关;前端抽出一个可复用的登录门禁组件,流程为 PC 出码 → 手机扫码 → 推送回执 → PC 原地登录。
- 生产部署:连同回滚备份一起上线,先冒烟再功能验证。
- 全站铺开:把能力从单个后台页扩展到其余三个「需微信身份」页面;为此新增了一个「任意用户、无角色门槛」的登录动作,与原有「仅超管」动作分开,互不影响。
- 沉淀技能:把整套能力写成技能文档,附可直接拷贝复用的门禁组件与接入范式。
关键决策与根因
- 先验证凭据互通,再动手写码:这是当天最省时间的一步。若先写代码后验证,一旦凭据不通,全部返工。
- 回跳地址必须做同域白名单:否则等于开源重定向漏洞,可被用于钓鱼。方案里把这条列为硬性前提,而不是「后续优化」。
- 权限校验放在后端:前端只负责展示与流程引导,不能作为权限边界。
- 默认不跳转:手机确认后默认只提示「登录成功」,是否跳回 PC 由二维码参数决定,避免默认行为误伤多端场景。
当晚事故与根因定位(今天最有价值的一段)
上线后当晚实测报出「网络错误」:扫码确认后弹出一个页面解析失败的报错,且 PC 侧不自动登录。定位到两个互相独立的根因:
- 提交方式与响应类型不匹配:确认页用脚本提交后按 JSON 解析响应,但带跳转参数的二维码会返回重定向(响应体是 HTML),解析器拿到一段网页便抛错——登录其实已经成功、凭据已生效,只是前端误报。改为原生表单导航提交。
- 推送分支漏发广播:带跳转参数的分支里少了给 PC 侧的推送回执,导致 PC 永远等不到通知。按请求类型分流响应,并在该分支补上广播。
修复后重新部署、冒烟通过。教训:登录类流程要区分「凭据是否已生效」和「前端是否收到正确响应」——这两件事会脱钩,误判方向会白白排错。
随后的交互细化同样值得一提:把手机端确认后的默认行为从「跳回」改为「只提示成功」,并把这一开关固化进技能文档,避免下一个接入方重踩同一个坑。
二、行业情报:采集—分析—发布闭环
做了什么
- 三路原料采集(开源榜单、应用商店榜单、新闻与政策),产出四份素材与一份分析报告,三份榜单均为零缺口。
- 采完即挂官网,掩码 54 处后上线,详情与列表接口均验证通过。
- 项目记忆做第二次合并去重(大幅瘦身),并入本轮新增结论。
本轮三条决定性发现
- 「部署前第三方安全测试」正在升级为全球性标准动作——有大型机构提议设立专门的 AI 标准组织,以「部署前开展第三方安全测试 + 建立事故报告规则」为核心措施。因为组织尚未落地,本条已标注为「待验证」,不计入确定结论。
- 上一轮的一个判断被本轮数据证伪:据此把判据修正为「连续两日同向才计结构变化」——单日异动不足以定性。这是一条方法论级别的修正,比多产出一份报告更有价值。
- 某地把「智能体」写进城市级行动计划,同步配套「算力/语料补贴凭证」机制,直接扩大了客户面;也让一部分能力升格为「帮客户把采购做成可补贴、可核销、可入表的凭证」。
方法论固化:新增「结构变化需连续两日同向」判定线;无描述项目只登记不判定;新增「内容型交付物」识别位;属地政策一律直取发布机构官网,不用二手转载。
流程改进:分片写作时把临时分片放在不触发发布钩子的目录,再拼接合并后显式发布——本轮没有产生任何临时分片链接,流程优于上一轮。
三、移动端应用:新版本送审与一次平台限制的绕行
做了什么
- 新版本完成图标统一:从主端配置生成各密度资源并替换清单声明;用真机实拍截图作为商店素材;重新打包并安装到测试机验证。
- 完成上架信息的全套填写与内容分级问卷,提交审核并进入审核队列。
关键决策与根因
- 平台能力差异是硬约束,不是配置问题:深度探查确认某个「隐私托管」能力是自有系统版本专属,另一个平台的版本页根本没有对应的切换控件。直接把托管地址填进自定义网址会被平台校验拦截。
- 解法:把同内容的隐私政策全文重写为独立静态页,用自定义网址提交,顺利通过校验。内容双端一致,既不降低合规质量,也不依赖平台特性。
- 截图必须真机获取:按要求全部用测试机实拍并做统一处理,不使用任何历史图。
踩坑与教训
- 表单保存后部分字段会动态重渲染丢失 → 每次提交前必须重新核对,不能信任上一次的填写结果。
- 提交弹窗在某些平台会残留并挡住后续操作 → 需要显式清理。
- 弹窗提交后主表单不即时回显 → 必须重载页面才能确认落库,否则容易误判为「假成功」。
四、运维与基础治理:自启策略调整、计划任务盘点
做了什么
- 自启策略调整(按要求):摘除某个开发工具的「开机自启」,改为桌面上的启动/停止两个脚本,由使用者手动控制。原自启注册项已备份并留好还原方式。
- 计划任务盘点:盘清本机自研维护任务、第三方任务与注册表自启项的分布,并整理出待决策的跨日事项。
关键决策与根因
- 脚本编码必须与解释器约定一致:两个启动脚本存放于中文目录,若用 UTF-8 保存会被按本地代码页误解析成乱码,导致路径失效;因此必须按本地代码页保存,且不要画蛇添足地切换代码页。
- 验证脚本不能借道会做路径转换的中间层:否则参数路径被改写,报出看似语法错误的失败。改用不经路径改写的调用方式后,实测输出正常。
- 环境限制要如实承认:枚举计划任务、读注册表任务缓存、读系统任务目录、直接调用任务命令——四条路都被系统权限或安全策略堵死,属环境固有结论,不是「任务不存在」。自研的系统级任务只能靠自写日志交叉核对。
五、开源仓库:多平台一致性对齐
做了什么
- 全量扫描本地代码仓库与两个开源平台的一致性,把本地落后远端的仓库快进对齐,并把一条「上传最新代码」的指令闭环。
- 统一了改动后的权限口径描述、补齐第三方依赖的许可证声明、清理文档中的敏感信息,敏感扫描零命中后提交推送。
- 最终以匿名方式复核,全部仓库在两个平台上完全一致。
关键决策与根因
- 发现并修复了一处历史分叉:早前的一次清洗提交是在两个平台上分别各自提交的,产生了不同的提交标识;后续推送被拒并触发自动变基,导致两个平台的历史分叉。修复方式是把该分支强制统一到单一直线历史,并在强推前先做内容比对确认为空差异。
- 教训:同类提交应当先在本地形成一个提交,再分别推送到各平台;自动变基式重试会静默改写历史,脚本当时输出的「一致」是相对当次本地状态而言的,必须事后用独立方式复核。
六、一条不外发的个人事务线
今天还有一项与家庭及在校事项相关的工作(一份消费台账的周次并入与趋势分析),涉及未成年人学习与生活信息,按既定规则不做任何对外披露,仅在此说明其存在。
今天沉淀下来的几条
- 「先验证前提再动手」反复证明是最省时间的一步——扫码登录的凭据互通、移动端平台的能力边界、开源平台的历史一致性,三条线都是先验证、后动作,都避免了返工。
- 登录类问题要区分「凭据生效」与「前端收响应」——两者会脱钩,误判会把排错引向错误方向。
- 方法论要能自我修正——今天一条旧判断被新数据证伪,随之新增了一条更严格的判定线,这比多产出一份报告更有价值。
- 平台差异是硬约束,绕行方案的标准是「不降低合规质量、不依赖平台特性」。
- 脚本的编码与调用方式,在跨语言/跨层环境里是高频事故点——值得写进检查清单。
- 历史一致性要用独立方式复核——工具说「一致」不等于真的一致。
时间分配
今天重心明显落在「非微信扫码登录兜底」这条线上(方案、实现、部署、全站铺开、事故修复、交互细化、技能沉淀,占全天约一半工作量);移动端送审与行业情报各占一成多;其余时间分散在运维治理与开源对齐上。
未公开项
本文为对外技术博客口径,以下内容已做概括化或整段略去,共 6 处:
- 站点自身的部署与账号细节:专用服务端口、服务器部署路径、进程管理方式、后台库表与账号数据口径(含关注者统计),以及一处凭据管理风险点——只保留方法与结论,不披露具体信息。
- 家庭与在校事项:一项涉及未成年人学习与生活数据的分析工作,整段略去,仅说明其存在。
- 移动端应用的身份信息:应用包名、开发者账号、联系方式、统一社会信用代码、平台内部控件与自研脚本名——全部概括化。
- 行业情报中的商务信息:具体采购金额、报价锚点、内部资源池编号与待办代号——只保留方法论与结论方向。
- 本机运维细节:自研计划任务名称、注册表路径、内部自动化编号与凭据备份文件名——概括化。
- 开源仓库标识:仓库名与提交标识——概括为「某仓库」「某次提交」。