返回 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