Google OAuth2(401)凭据无效

时间:2014-01-28 19:31:46

标签: php oauth-2.0 google-api

所以我有一个我正在研究的应用程序。我在XAMPP中有一个本地副本,在服务器上有一个实时版本(当然)。一切都正常,但是,当我退出一个时,我收到了这个错误:

  

致命错误:带有消息的未捕获异常'Google_ServiceException'   '在调用GET(401)无效凭据时出错   C:\ localhost \ htdocs \ up \ api \ src \ io \ Google_REST.php:66堆栈跟踪:#0   C:\本地主机\ htdocs中\向上\ API \ SRC \ IO \ Google_REST.php(36):   Google_REST :: decodeHttpResponse(Object(Google_HttpRequest))#1   C:\本地主机\ htdocs中\向上\ API \ SRC \服务\ Google_ServiceResource.php(186):   Google_REST :: execute(Object(Google_HttpRequest))#2   C:\本地主机\ htdocs中\向上\ API \ SRC \的contrib \ Google_Oauth2Service.php(36):   Google_ServiceResource-> __ call('get',Array)#3   C:\本地主机\ htdocs中\向上\ SRC \ user.php的(63):   Google_UserinfoServiceResource-> get()#4   C:\本地主机\ htdocs中\向上\包括\ authorizedHeader.php(5):   require('C:\ localhost \ ht ...')#5   C:\ localhost \ htdocs \ up \ profile.php(1):include('C:\ localhost \ ht ...')

     在第66行的C:\ localhost \ htdocs \ up \ api \ src \ io \ Google_REST.php中抛出

6 {main}

我努力刷新,清除缓存等等,我仍然得到错误。但是,当我关闭浏览器并重新打开它时,一切都重新出现,就像没有发生任何事情一样。

有人有这个问题/解决了吗?

非常感谢。

最佳,

泰勒

1 个答案:

答案 0 :(得分:7)

经过一些SO线程后,我遇到了这个片段:

      if($client->isAccessTokenExpired()) {
          $client->refreshToken('refresh-token');
      }

我注意到没有这个,当令牌过期时,我会收到错误。在我输入这个“If”语句后,我注意到令牌过期后刷新令牌工作。

我也试过这个,它也有效:

    if ($client->isAccessTokenExpired()) {
       session_destroy();
       header('Location: login.php');
    }

在令牌过期后,用户将用户重定向到登录页面。用户再次登录后,Access Token将再次启动。这可能不是最实用的方法,但我只是分享对我有用的东西。

我希望这有助于可能遇到此问题的人。