You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google OAuth授权码流兑换令牌遇redirect_uri_mismatch错误求助

Google授权码流redirect_uri_mismatch问题排查与解决

问题背景

原本已通过Google Authorization授权码流成功兑换令牌(Postman、Spring示例项目均正常),但在最终Spring项目首次运行后,突然出现400 redirect_uri_mismatch错误,且后续Postman请求也触发相同错误,配置未做任何变更。

核心排查与解决步骤

1. 严格校验重定向URI的一致性

Google对重定向URI的匹配是逐字符严格校验的,哪怕是大小写、空格、路径拼写差异都会触发错误:

  • 直接复制Google凭据页面里的授权重定向URI,粘贴到前端请求、Postman参数以及Spring配置中,避免手动输入出错;
  • 检查协议(http/https)、端口、路径是否完全一致,比如本地开发用http就不能写成https,端口8081就不能用8080。

2. 清理缓存与无效授权码

  • Spring项目:清理target编译目录,重启应用,避免配置缓存;
  • Postman:新建请求测试,清除Google相关的Cookie和缓存,或者用无痕模式打开Postman;
  • 授权码是一次性的,且有效期仅10分钟,之前用过的授权码会失效,重新获取新的授权码再兑换令牌。

3. 检查Google凭据状态

  • 确认Google Cloud控制台中对应的OAuth 2.0客户端ID未被禁用;
  • 检查是否选错了项目,确保使用的凭据和当前测试的项目是同一个。

4. 验证实际请求参数

在Spring项目中通过日志或断点,打印出兑换令牌时实际发送的redirect_uri参数值,和Google凭据里的URI做逐字符对比,排查代码中是否有动态修改URI的逻辑。

快速测试命令

用curl直接测试,排除工具缓存干扰:

curl -X POST https://oauth2.googleapis.com/token \
  -d "code=你的授权码" \
  -d "client_id=你的客户端ID" \
  -d "client_secret=你的客户端密钥" \
  -d "redirect_uri=从Google凭据复制的完整URI" \
  -d "grant_type=authorization_code"

内容的提问来源于stack exchange,提问作者OtaconKiko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 14:10:27