Php Google Oauth 2.0检查我的referesh访问令牌是否过期

Php Google Oauth 2.0检查我的referesh访问令牌是否过期,php,oauth-2.0,google-api,google-oauth,Php,Oauth 2.0,Google Api,Google Oauth,您好,当用户尝试使用google Oauth 2.0登录时,我正在设置脱机访问,然后我会获取刷新令牌并将其存储到我的数据库中,这样我以后就可以使用它,而无需要求用户再次登录。我发现,用户可以从他的google帐户中撤销对其google应用程序的应用程序访问权限,之后,我们的刷新访问令牌将不起作用 这是一种在使用之前检查刷新令牌是否有效的方法。我曾试图从google api文档中找到它,但找不到任何帮助。我只能发现我们可以检查simple access令牌的过期时间,该令牌的有效期仅为1小时 i

您好,当用户尝试使用google Oauth 2.0登录时,我正在设置脱机访问,然后我会获取刷新令牌并将其存储到我的数据库中,这样我以后就可以使用它,而无需要求用户再次登录。我发现,用户可以从他的google帐户中撤销对其google应用程序的应用程序访问权限,之后,我们的刷新访问令牌将不起作用

这是一种在使用之前检查刷新令牌是否有效的方法。我曾试图从google api文档中找到它,但找不到任何帮助。我只能发现我们可以检查simple access令牌的过期时间,该令牌的有效期仅为1小时

 if($client->isAccessTokenExpired())
但我想检查一下我的刷新令牌是不是我们可以检查它的一种方式,或者google outh 2.0是否有一些web钩子,当用户撤销我们的应用程序访问权限时,可以调用我们的url

这是我的登录代码

$google_redirect_url = $url;    
$client = new \Google_Client(); 
$client->setAuthConfig('/secret.json');
$client->setRedirectUri($google_redirect_url);
$client->setAccessType('offline');        // offline access
$client->setIncludeGrantedScopes(true);   // incremental auth          
$client->setApprovalPrompt('force');
$client->setScopes(array(
            'https://www.googleapis.com/auth/plus.me',
            'https://www.googleapis.com/auth/userinfo.email',
            'https://www.googleapis.com/auth/userinfo.profile',
            'https://www.googleapis.com/auth/youtube',
            'https://www.googleapis.com/auth/youtube.upload'
        )); 

我也一直在寻找解决方案,但没有找到 虽然这在理论上可能是个好主意,但毕竟我们都喜欢避免错误。但是,如果刷新令牌不起作用,您所做的只是将发出的请求数量增加一倍,以避免出现错误。为什么您要将您提出的请求数量增加一倍

您应该做的只是尝试使用刷新令牌,如果失败,请再次请求用户访问。假设这是自动运行的,只需从数据库中删除刷新令牌,不再尝试自动运行此用户请求

也就是说,谷歌给我们提供的验证刷新令牌的最佳方法和唯一方法就是尝试使用它。您在库中找到的任何方法都可能就是这样做的