Я использую 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(); }
с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(); }
Вероятно, вы проверяете истечение срока действия перед запуском $client->setAccessToken();
, Посмотрим код, в котором вы проверяете истечение срока действия.
Не всегда верно. Я сделал точно в правильных порядках, и 1 / isAccessTokenExpired () всегда TRUE 2 / i получает access_token, refresh_token, expires_in, но я никогда не получаю созданные. Это созданное используется в isAccessTokenExpired ()