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

Google Identity API兑换授权码返回Invalid grant 400错误如何解决?

错误根因说明

你收到的Invalid grant错误是OAuth 2.0授权码兑换令牌阶段的典型报错,核心原因是请求中涉及授权校验的参数不符合Google Identity服务的校验规则,可按照以下优先级逐一排查:

排查方案
  • 授权码失效问题
    Google OAuth 2.0返回的授权码仅10分钟有效期,且只能使用一次,哪怕前一次兑换请求失败,该授权码也会被立即作废。你需要重新走前序授权流程,获取全新的授权码后再提交兑换请求。
  • 重定向URI不匹配
    兑换token时提交的redirect_uri参数,必须和你申请授权码时传入的redirect_uri完全一致,包括协议类型(http/https)、端口号、路径、末尾斜杠,哪怕存在单个字符的差异都会触发校验失败。如果是本地测试使用的非线上URI,需要确保两次请求填写的内容完全相同。
  • 客户端凭证不匹配
    检查请求中的client_id和client_secret,必须和你在Google Cloud控制台创建的OAuth客户端凭证完全一致,同时注意不要混用不同应用类型的凭证,Web应用、桌面应用、移动应用的凭证不通用。
  • 请求格式错误
    该接口要求请求的Content-Type必须为application/x-www-form-urlencoded,所有参数必须以表单格式放在请求体中提交,不支持JSON格式传参,也不支持将参数放在URL查询串中。请求必填参数如下:
    • grant_type:固定值authorization_code
    • code:你获取的授权码
    • client_id:你的OAuth客户端ID
    • client_secret:你的OAuth客户端密钥
    • redirect_uri:和授权阶段一致的重定向地址
  • 项目权限限制问题
    如果你的Google Cloud项目还处于测试状态,当前授权的谷歌账号必须被提前添加到项目的测试用户白名单中,否则兑换阶段也会触发该错误。另外需要确认你的Google Cloud项目状态正常,没有欠费、OAuth服务被限制的问题。
快速校验方法

你可以拿到新的授权码后,直接执行以下curl命令验证,排除Postman配置错误:

curl -d "client_id=替换为你的client_id" \
-d "client_secret=替换为你的client_secret" \
-d "code=替换为新获取的授权码" \
-d "grant_type=authorization_code" \
-d "redirect_uri=替换为授权时使用的redirect_uri" \
https://oauth2.googleapis.com/token

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:06:00