返回 Bug 清单
BUG-0367project-29高已修复deploy
nginx 替 SPA 接管 OAuth callback 路由 —— rewrite 抢跑,回调永远到不了页面
发现:2026-10-01验证:2026-10-09置信度:90%
症状
OAuth 回调 404 或跳错位置;P0 事故复盘后确认根因在网关层多管闲事。
根因
SPA 架构里 callback 路由的处理器是前端代码(解析 code、换取 token、写入会话),网关对这条路径做 rewrite/proxy 等于把信送给了错误的部门。网关只应保证:未匹配静态资源的路径回退到 index.html。
修复方案
1) 删除 callback 路径上的 rewrite 与 /uc/ proxy 规则,让 SPA fallback 接管;
2) 架构约定:OAuth 回调链路的每一跳(授权服务器 → 网关 → SPA → token endpoint)画清楚『谁处理什么』,网关职责只有转发与回退;
3) 验收用真实浏览器全链路走通,不用 curl 替代(curl 不会执行前端路由)。
检测命令
grep -n 'callback\|/uc/' <nginx conf> | 核对是否存在 rewrite/proxy 抢跑;浏览器实测回调落点错误签名
nginx 对 /auth/callback 配了 rewrite/proxy;React SPA 自己才是 callback 处理方 → 回调被网关截走,code/state 无法到达前端路由技术信息
来源项目
project-29
标签
oauth-callback, nginx, spa-routing, gateway-scope, p0