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

使用Curl测试Curity时兑换授权码返回invalid_grant错误如何解决

OAuth2 授权码兑换invalid_grant错误原因及解决方案

错误原因

  • 首要问题:授权码填写错误。回调返回的完整授权码为wQL8FsIjjb2Zd0G5Flki1y6LN6ij8Mc7,但curl命令中传递的code参数缺失了末尾的字符7,OAuth服务端无法匹配到已发放的有效授权码,直接返回无效授权错误。
  • 其他可能诱因:
    • 授权码已过期:绝大多数OAuth服务端的授权码有效期仅为10~300秒,生成后未及时兑换就会失效
    • 授权码已被使用:授权码为一次性凭证,只要调用过一次token接口,哪怕请求失败也会直接作废
    • 重定向地址不匹配:curl提交的redirect_uri必须和第一步授权请求中的redirect_uri完全一致,协议、域名、路径、参数均不能有差异
    • 客户端认证失败:-u www:secret中填写的客户端密钥和服务端配置不匹配

解决方案

  1. 优先修正curl命令中的code参数为回调返回的完整值,修正后的命令如下:
curl -Ssk -v \
-X POST https://mcc1sis0027:8098/oauth/v2/oauth-token \
-u www:secret \
-d grant_type="authorization_code" \
-d redirect_uri=https%3A%2F%2Flocalhost%2Fcallback \
-d code=wQL8FsIjjb2Zd0G5Flki1y6LN6ij8Mc7
  1. 确保拿到授权码后10秒内执行兑换命令,避免过期
  2. 若修正后仍报错,重新走第一步授权流程获取全新的授权码,拿到后立刻执行修正后的curl命令,不要重复使用历史授权码
  3. 核实客户端密钥、重定向地址是否和服务端配置完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 06:36:04