# 架构决策:下线未实现的微信网页 OAuth > 日期:2026-08-02 > 决策:删除 `GET /api/wechat/authorize`、`GET /api/wechat/callback` 与 `WECHAT_REDIRECT_URI` > 保留:微信小程序手机号核验登录 `/api/user/wx-phone-login` ## 背景 旧代码保留了一组公开网页 OAuth demo:授权地址使用 `qrconnect`,回调没有向微信换取身份,而是把请求中的 `code` 拼成 `demo_openid_` 后返回“微信授权成功”。它不签发 Petstore session,但会对外表达不存在的身份核验结果,也让生产发布多维护一个实际不使用的 `WECHAT_REDIRECT_URI`。 当前试点只有小程序登录:客户端通过 `getPhoneNumber` 与 `wx.login` 获取一次性 code,后端 `WechatMiniProgramService` 分别向微信换取已核验手机号和 openid/unionid,再由 `/api/user/wx-phone-login` 建立真实账号与 session。Admin、H5 和小程序源码均未调用旧网页 OAuth 端点。 ## 决策 1. 删除 `WechatController` 与只服务于它的 `WechatConfig`;旧路径不再公开放行,也不提供伪成功兼容响应。 2. 生产配置和 release preflight 不再要求 `WECHAT_REDIRECT_URI`;`WECHAT_APPID`、`WECHAT_APPSECRET` 继续作为小程序服务必填项。 3. 从机器本体和动作文档删除两个 deprecated/gap 入口,使本体只描述实际存在的 HTTP 契约。 4. 不在本阶段补做 PC 扫码登录、公众号网页授权或第二套账号绑定模型;未来若有真实场景,必须以独立 PRD、威胁模型和新 API 契约重新设计。 ## 兼容与发布影响 - 数据库无迁移,现有 session、用户、预约、报告和小程序登录不受影响。 - 若外部仍请求旧路径,将不再得到 demo 成功响应;这属于预期的 fail-closed 行为。 - 生产环境文件应删除废弃变量,避免运维人员误以为仍需配置网页回调。 - 三角色验收继续只验证微信小程序手机号核验、员工邀请手机号一致性和旧注册入口 410,不验证网页 OAuth。