Google Oauth 2.0令牌到期时间

时间:2015-01-21 23:33:40

标签: oauth-2.0 single-sign-on token google-oauth

首先,我要使用此网站https://github.com/google/google-api-php-client

中的Google OAuth 2.0代码

我需要找出此oauth目录中令牌过期的位置并将您注销。我遇到刷新令牌的问题,通常令牌在1小时后到期并抛出一个错误,但每次做出更改以查看代码是否有效时,我都不能等待1小时。我已将代码中的某些时间设置更改为10或60秒,但他们没有做任何事情。请让我知道哪个文件以及我可以在哪里更改令牌过期的时间并注销登录用户。

谢谢,

我添加了以下代码,因为问题在这里,使用此get函数的东西不是更新/使用刷新令牌。如何更好地编写此代码。

$service = new Google_Service_Oauth2 ($client);

if ($client->getAccessToken()) {
//For logged in user, get details from google using access token
$user           = $service->userinfo->get();
$user_id            = filter_var($user['id'],FILTER_SANITIZE_SPECIAL_CHARS);
$user_name          = filter_var($user['name'], FILTER_SANITIZE_SPECIAL_CHARS);
$first_name         = filter_var($user['given_name'], FILTER_SANITIZE_SPECIAL_CHARS);
$last_name          = filter_var($user['family_name'], FILTER_SANITIZE_SPECIAL_CHARS);
$email          = filter_var($user['email'], FILTER_SANITIZE_EMAIL);
//$profile_url      = filter_var($user['link'], FILTER_VALIDATE_URL);
$profile_image_url      = filter_var($user['picture'], FILTER_VALIDATE_URL);
$gender         = filter_var($user['gender'], FILTER_SANITIZE_SPECIAL_CHARS);
//$personMarkup         = "$email<div><img src='$profile_image_url?sz=50'></div>";
$_SESSION['upload_token']   = $client->getAccessToken();}

1 个答案:

答案 0 :(得分:1)

无法更改Google的访问令牌到期时间。但是,如果令牌已过期,则Google_Client::isAccessTokenExpired()方法将返回true,或者在此后30秒内过期。您的代码不应该只在失败后处理更新令牌,而是可以检查访问令牌是否已过期之前它将调用具有该特定访问令牌的任何方法。

还有一个边缘案例仍然存在:您可以使用以下方法手动撤消访问令牌(应用程序的带外)来模拟这种情况:

curl https://accounts.google.com/o/oauth2/revoke?token=<access_token>

然后运行/测试仍然保留现在已撤销的访问令牌的代码。撤销或过期的访问错误代码相同(&#34; invalid_token&#34;),无论如何处理都是一样的。