【问题标题】:Google OAuth2 (401) Invalid CredentialsGoogle OAuth2 (401) 无效凭据
【发布时间】:2018-04-25 21:05:38
【问题描述】:

所以我有一个正在开发的应用程序。我在 XAMPP 中有一个本地副本,在服务器上有一个实时版本(当然)。两者都可以正常工作,但是,当我注销其中一个时,出现此错误:

致命错误:带有消息的未捕获异常“Google_ServiceException” “调用 GET (401) 无效凭据时出错” C:\localhost\htdocs\up\api\src\io\Google_REST.php: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): 要求('C:\localhost\ht...') #5 C:\localhost\htdocs\up\profile.php(1): include('C:\localhost\ht...')

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

我尝试了刷新、清除缓存等,但仍然出现错误。但是,当我关闭浏览器并重新打开它时,一切都会重新出现,就像什么都没发生一样。

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

非常感谢您的建议。

最好的,

泰勒

【问题讨论】:

    标签: php oauth-2.0 google-api


    【解决方案1】:

    经过一些SO线程后,我遇到了这个sn-p:

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

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

    我也试过了,效果也不错:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-05
      • 2020-10-21
      • 1970-01-01
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多