Google OAuth2 - isAccessTokenExpired() всегда верно


Я использую OAuth в своем приложении и хочу, чтобы пользователь вышел из системы, когда истечет срок действия маркера доступа.

Но когда я проверил срок действия токена с помощью

 $client->isAccessTokenExpired()

Он всегда возвращает 1.

if (isset($_GET['logout'])) {
    unset($_SESSION['token']);
}


if (isset($_GET['code'])) {
    $client->authenticate($_GET['code']);
    $_SESSION['token'] = $client->getAccessToken();
    $redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
    header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));  
}



if (!isset($_SESSION['token'])) {
    $authUrl = $client->createAuthUrl();
 }


if (isset($_SESSION['token'])) {
    $client->setAccessToken($_SESSION['token']);
    $service = new Google_Service_Calendar($client);

    $oauth2 = new Google_Service_Oauth2($client);
    $userinfo = $oauth2->userinfo->get();
    $emailUser = $userinfo->getEmail();
    $_SESSION['emailUser'] = $userinfo->getEmail();
}
Author: Kroll, 2015-04-22

2 answers

Вы, вероятно, проверяете срок действия перед запуском $client->setAccessToken();. Давайте посмотрим код, в котором вы проверяете срок действия.

 9
Author: Orange, 2015-04-25 22:16:49

Не всегда верно. Я сделал все в точном порядке и 1/ isAccessTokenExpired() всегда ВЕРНО 2/ я получаю access_token, refresh_token, expires_in, но я никогда не получаю созданный. Это созданное используется в isAccessTokenExpired()

 -1
Author: Ajaxiome, 2017-10-27 13:29:02