Google SSO aouth 2.0提供错误提取OAuth2访问令牌,消息:' invalid_grant:代码已被兑换。'

时间:2016-05-10 06:45:08

标签: php codeigniter single-sign-on google-oauth

我已经在我的网站上使用谷歌启用它自上个月3-4个月以来工作正常但从昨天开始每隔4-5分钟开始给我一次错误

  

致命错误:未捕获的异常' Google_Auth_Exception'与消息   '提取OAuth2访问令牌时出错,消息:' invalid_grant:代码为   已经兑换。''在   F:\ ServerFolders \项目\ domain.com的\ src \谷歌\ Client.php(131):   Google_Auth_OAuth2->验证(' 4 / 8hj0saqecCytQ ...',false)#1   F:\ ServerFolders \项目\ domain.com \应用\库\ NV_gmail.php(105):   Google_Client->验证(' 4 / 8hj0saqecCytQ ...')#2   F:\ ServerFolders \项目\ domain.com \应用\库\ layout.php中(51):   NV_gmail->登录()#3   F:\ ServerFolders \项目\ tl-l.com \应用\控制器\ dashboard.php(19):   layout-> header()#4 [内部函数]:dashboard-> index()#5   F:\ ServerFolders \项目\ domain.com \ SYSTEM \核心\ CodeIgniter.php(359):   call_user_func_array(Array,Array)#6   F:\ ServerFolders \项目\ domain.com \的index.php(202):   require_once(' F:\ ServerFolder ......')#7 {main}引入   F:\ ServerFolders \ Projects \ domain.com \ src \ Google \ Auth \ OAuth2.php on   第126行

并显示空白页。

2 个答案:

答案 0 :(得分:1)

当用户点击身份验证时,您将获得一个身份验证代码。您获取此代码并将其交换为您的访问令牌和刷新令牌。

  

'invalid_grant:代码已被兑换

表示您正在使用已经使用过的身份验证代码并尝试为其获取另一个访问令牌/刷新令牌。

如果它在过去4个月中有效,我的意见是有人在您的代码中更改了某些内容并将其破坏。

答案 1 :(得分:0)

更改

curl_setopt($curl, CURLOPT_SSLVERSION, 3); 

 //curl_setopt($curl, CURLOPT_SSLVERSION, 3); 

根据github.com/google/google-api-php-client/issues/639来自curl.php,现在工作正常