Wrong number of segments in token (OAuth Google Api with php)

Wednesday, November 4, 2015

I have a php application that use OAuth2 to authenticate users to their account.



until yesterday, everything worked very well.



But today, when I try to access to my account, and after I authenticates to my google account, I obtain a blank page.



I debug the code and I found that it crashed when the Google_Client try to verifyIdToken and more exactly in the function verifySignedJwtWithCerts because : $segments = explode(".", $jwt); find 4 segments and not 3.



here is my code :



...
$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"];

...


Can anyone offer an explanation?
Thank's in advance

0 comments:

Post a Comment