我有一个 php 应用程序,它使用 OAuth2 对用户的帐户进行身份验证。
直到昨天,一切都进展顺利。
但是今天,在不更改代码的情况下,当我尝试访问我的帐户时,并且在对我的谷歌帐户进行身份验证后,我获得了一个空白页面。
我调试代码,发现当 Google_Client 尝试 verifyIdToken 时崩溃,更准确地说是在函数 verifySignedJwtWithCerts 中,因为:$segments = explode(".", $jwt);找到 4 个段而不是 3 个段。
这是我的代码:
...
$client = new Google_Client();
$client->setClientId($clientId);
$client->setClientSecret($clientSecret);
$client->setRedirectUri($redirectUri);
$client->setScopes("email");
if(!isset($_GET['code']))
header("Location: ".$client->createAuthUrl());
else
{
$client->authenticate($_GET['code']);
$_SESSION["access_token"] = $client->getAccessToken();
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
$client->setAccessToken($_SESSION['access_token']);
} else {
$authUrl = $client->createAuthUrl();
}
$ticket = $client->verifyIdToken();
if ($ticket) {
$admin = $ticket->getAttributes();
}
$_SESSION["email"] = $admin["payload"]["email"];
...
Run Code Online (Sandbox Code Playgroud)
谁能提供解释吗?提前致谢