petstore-docs/架构决策-下线未实现微信网页OAuth-2026-08-02.md

2.0 KiB
Raw Blame History

架构决策:下线未实现的微信网页 OAuth

日期2026-08-02
决策:删除 GET /api/wechat/authorizeGET /api/wechat/callbackWECHAT_REDIRECT_URI
保留:微信小程序手机号核验登录 /api/user/wx-phone-login

背景

旧代码保留了一组公开网页 OAuth demo授权地址使用 qrconnect,回调没有向微信换取身份,而是把请求中的 code 拼成 demo_openid_ 后返回“微信授权成功”。它不签发 Petstore session但会对外表达不存在的身份核验结果也让生产发布多维护一个实际不使用的 WECHAT_REDIRECT_URI

当前试点只有小程序登录:客户端通过 getPhoneNumberwx.login 获取一次性 code后端 WechatMiniProgramService 分别向微信换取已核验手机号和 openid/unionid再由 /api/user/wx-phone-login 建立真实账号与 session。Admin、H5 和小程序源码均未调用旧网页 OAuth 端点。

决策

  1. 删除 WechatController 与只服务于它的 WechatConfig;旧路径不再公开放行,也不提供伪成功兼容响应。
  2. 生产配置和 release preflight 不再要求 WECHAT_REDIRECT_URIWECHAT_APPIDWECHAT_APPSECRET 继续作为小程序服务必填项。
  3. 从机器本体和动作文档删除两个 deprecated/gap 入口,使本体只描述实际存在的 HTTP 契约。
  4. 不在本阶段补做 PC 扫码登录、公众号网页授权或第二套账号绑定模型;未来若有真实场景,必须以独立 PRD、威胁模型和新 API 契约重新设计。

兼容与发布影响

  • 数据库无迁移,现有 session、用户、预约、报告和小程序登录不受影响。
  • 若外部仍请求旧路径,将不再得到 demo 成功响应;这属于预期的 fail-closed 行为。
  • 生产环境文件应删除废弃变量,避免运维人员误以为仍需配置网页回调。
  • 三角色验收继续只验证微信小程序手机号核验、员工邀请手机号一致性和旧注册入口 410不验证网页 OAuth。