所以我有一个我正在研究的应用程序。我在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}
我努力刷新,清除缓存等等,我仍然得到错误。但是,当我关闭浏览器并重新打开它时,一切都重新出现,就像没有发生任何事情一样。
有人有这个问题/解决了吗?
非常感谢。
最佳,
泰勒
答案 0 :(得分:7)
经过一些SO线程后,我遇到了这个片段:
if($client->isAccessTokenExpired()) {
$client->refreshToken('refresh-token');
}
我注意到没有这个,当令牌过期时,我会收到错误。在我输入这个“If”语句后,我注意到令牌过期后刷新令牌工作。
我也试过这个,它也有效:
if ($client->isAccessTokenExpired()) {
session_destroy();
header('Location: login.php');
}
在令牌过期后,用户将用户重定向到登录页面。用户再次登录后,Access Token将再次启动。这可能不是最实用的方法,但我只是分享对我有用的东西。
我希望这有助于可能遇到此问题的人。