Google OAuth2集成报错Error 400: redirect_uri_mismatch,子域名环境不生效
排查修复步骤
- 先从浏览器请求里取实际传递的
redirect_uri值:打开浏览器开发者工具的「网络」面板,找到跳转到OAuth服务商的授权请求,复制URL参数里的redirect_uri完整值,完全一字不差粘贴到OAuth服务商后台的重定向URI配置列表中即可解决绝大多数匹配问题。 - 确认地址的所有细节完全匹配:协议(http/https)、子域名、端口、路径、末尾斜杠都必须和配置完全一致,例如
https://someSubdomain.someTopLevelDomain.com/login/oauth2/code/google和https://someTopLevelDomain.com/login/oauth2/code/google会被判定为两个完全不同的地址。 - 检查Spring Boot反向代理配置:如果后端部署在Nginx等反向代理之后,需要在Spring Boot配置文件中添加
server.forward-headers-strategy=native,同时Nginx侧配置传递X-Forwarded-Proto、X-Forwarded-Host头,避免Spring Boot生成的重定向地址使用内部服务地址而非公网访问地址。 - 子域名通配规则校验:如果你使用通配符配置重定向URI,确认OAuth服务商的通配规则,绝大多数平台仅支持
https://*.yourdomain.com格式的一级子域名通配,不支持多级通配,也不允许在主域名位置使用通配符。 - 检查代码配置:确认React前端发起授权时传递的
redirect_uri,或者Spring Boot OAuth配置里的redirect-uri参数没有残留本地localhost的配置值。
配置参考截图


内容的提问来源于stack exchange,提问作者Anurag
相关产品推荐
相关产品推荐

