refreshToken($-6ren">
gpt4 book ai didi

token - 使用刷新 token 异常{ "error": "invalid_grant" }'

转载 作者:行者123 更新时间:2023-12-04 05:23:48 31 4
gpt4 key购买 nike

我已经成功构建了一个获取访问和刷新 token 的应用程序。

在我的脚本中,我检查访问 token 是否有效,如果无效,则使用刷新 token 来获取访问$client->refreshToken($refreshToken);
完整的代码,

    $refreshToken = '<REFRESH_TOKEN>';

$client_id = '<CLIENT_ID>';
$client_secret = '<CLIENT_SECRET>';

// Setup infomation
$client = new Google_Client();
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setAccessType("offline");
$client->addScope("https://mail.google.com/");

// If access token is not valid use refresh token
if($client->isAccessTokenExpired()) {

// Use refresh token
$client->refreshToken($refreshToken);

} else {

// Use access token
echo $client->setAccessToken($accessToken);

}

但是,当尝试使用刷新 token 时,我会感到惊讶:
Fatal error: Uncaught exception 'Google_Auth_Exception' with message 'Error refreshing the OAuth2 token, message: '{ "error" : "invalid_grant" }''

最佳答案

在OAuth2规范中,“invalid_grant”是所有与无效/过期/吊销的 token (身份验证授权或刷新 token )相关的错误的综合解决方案。

有很多潜在的问题原因,这是一个 list :

  • 服务器时钟/时间不同步
  • 无权进行离线访问
  • 由Google节制
  • 使用过期的刷新 token
  • 用户已停用6个月了
  • 使用服务人员电子邮件代替客户端ID
  • 短时间内访问 token 太多
  • 客户端SDK可能已过时
  • 刷新 token
  • 不正确/不完整
  • 用户已积极撤消对我们应用程序
  • 的访问
  • 用户已重置/恢复了他们的Google密码

  • I've written a short article汇总每个项目并提供一些调试指导,以帮助找到罪魁祸首。我们花了几天时间来解决这个问题,希望它可以帮助其他人将这些日子变成数小时。

    关于token - 使用刷新 token 异常{ "error": "invalid_grant" }',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26724003/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com