Google OAuth2 - isAccessTokenExpired() 始终为真
Google OAuth2 - isAccessTokenExpired() always true
我在我的应用程序中使用 OAuth,我想在访问令牌过期时注销用户。
但是当我用
检查令牌过期时
$client->isAccessTokenExpired()
总是return 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();
}
您可能在 运行 $client->setAccessToken();
之前检查过期时间。让我们看看您检查过期的代码。
并非总是如此。
我完全按照正确的顺序做了
1/ isAccessTokenExpired() 始终为真
2/ 我收到 access_token、refresh_token、expires_in,但我从未收到创建的邮件。
这个创建用于 isAccessTokenExpired()
我在我的应用程序中使用 OAuth,我想在访问令牌过期时注销用户。
但是当我用
检查令牌过期时 $client->isAccessTokenExpired()
总是return 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();
}
您可能在 运行 $client->setAccessToken();
之前检查过期时间。让我们看看您检查过期的代码。
并非总是如此。 我完全按照正确的顺序做了 1/ isAccessTokenExpired() 始终为真 2/ 我收到 access_token、refresh_token、expires_in,但我从未收到创建的邮件。 这个创建用于 isAccessTokenExpired()