Google OAuth2(401)凭据无效

Tys*_*ezy 1 php google-api oauth-2.0

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

致命错误:在C:\ localhost\htdocs\up\api\src\io\_Google_REST.php中显示错误消息'Google_ServiceException',并显示消息'错误调用GET(401)无效凭据':66堆栈跟踪:#0 C:\ localhost\htdocs\up\api\src\io\Google_REST.php(36):Google_REST :: decodeHttpResponse(Object(Google_HttpRequest))#1 C:\ localhost\htdocs\up\api\src\service\Google_ServiceResource.php(186) ):Google_REST :: execute(Object(Google_HttpRequest))#2 C:\ localhost\htdocs\up\api\src\contrib\Google_Oauth2Service.php(36):Google_ServiceResource - > __ call('get',Array)#3 C :\ localhost\htdocs\up\src\user.php(63):Google_UserinfoServiceResource-> get()#4 C:\ localhost\htdocs\up\includes\authorizedHeader.php(5):require('C:\ localhost\ht ...')#5 C:\ localhost\htdocs\up\profile.php(1):include('C:\ localhost\ht ...')

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

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

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

建议非常感谢.

最好,

泰勒

Tys*_*ezy 8

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

      if($client->isAccessTokenExpired()) {
          $client->refreshToken('refresh-token');
      }
Run Code Online (Sandbox Code Playgroud)

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

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

    if ($client->isAccessTokenExpired()) {
       session_destroy();
       header('Location: login.php');
    }
Run Code Online (Sandbox Code Playgroud)

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

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