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

使用google/googleapi包请求OAuth2.0授权出现invalid_grant 400错误如何解决

Google Calendar OAuth 2.0 invalid_grant 报错解决方案

出现该400 Bad Request: invalid_grant报错可按以下优先级排查:

  • 授权码一次性校验失败
    回调地址携带的$_GET['code']是一次性凭证,仅可用于兑换一次access token,重复刷新回调页面、重复提交同一个code都会触发该报错。出现该问题后重新走一次完整的授权流程即可。
  • 重定向URI不匹配
    代码中通过action('gCalendarController@oauth')生成的回调地址,必须和Google Cloud控制台「OAuth 2.0客户端ID」配置的已授权重定向URI完全一致,包括http/https协议头、域名、端口、路径,任意字符不一致都会触发报错。可先打印$rurl变量的值,和控制台配置做逐项比对。
  • 凭证文件配置错误
    你当前将credentials.json存放在vendor目录下的行为存在风险,composer执行安装/更新操作时可能会覆盖/删除该文件。同时需确认该凭证是从Google Cloud控制台下载的「OAuth客户端凭证」,而非服务账号凭证,凭证类型下载错误也会触发该报错。建议将凭证文件迁移至项目storage或config目录下,同时确认项目对该文件有可读权限。
  • 代码逻辑错误
    $client->authenticate($_GET['code'])返回值为包含access_token、refresh_token、expires_in等字段的数组,并非单一的refresh_token。后续使用时需要先调用$client->setAccessToken(你存储的token数组)完成初始化,如果token过期未调用refresh_token兑换新的access_token,也会触发该报错。
  • 服务器时间偏差
    如果你的服务器时间和标准UTC时间偏差过大,会导致签名校验不通过,同步服务器时间为NTP标准时间即可修复。

注意:生产环境请勿关闭CURLOPT_SSL_VERIFYPEER配置,会存在严重的中间人攻击风险,本地开发可临时开启,上线必须恢复校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 19:09:00