2017-08-06 2 views
1

Je développe une application qui a deux faces: côté mobile (IOS) et côté serveur (PHP, Laravel 5.4). J'utilise la propre classe de google pour générer le jeton google et les envoyer au serveur au format json.Vérifier l'intégrité du jeton Google ID par Php (Laravel)

Mon Json ressemble à ceci:

["name": "ali farhangmehr", "email": "[email protected]", "google_image_url": https://lh5.googleusercontent.com/-6KoifJgUUW0/AAAAAAAAAAI/AAAAAAAAA60/BbWD4fEDvHk/s100/photo.jpg, "googleToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjVlYTZiNzAzYjYzOTVmYzJlNWJkNmUzY2EwZjhiMzcxYTE0ODU5YjMifQ.eyJhenAiOiIyNTk3NjE1MTY5NjEtOXZ0Y3AyZnQ1dXZsaGJkdmxlM2lndDlsbDg3b3FwM2EuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJhdWQiOiIyNTk3NjE1MTY5NjEtOXZ0Y3AyZnQ1dXZsaGJkdmxlM2lndDlsbDg3b3FwM2EuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJzdWIiOiIxMDU4NzI5MzY5MDEzOTMwNjEyNTEiLCJlbWFpbCI6ImFsaS5mYXJoYW5nbWVockBnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiYXRfaGFzaCI6IkN6S0htamlYOUhDM2JjaGZRTGJ3ZXciLCJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJpYXQiOjE1MDIwNDc4MjAsImV4cCI6MTUwMjA1MTQyMCwibmFtZSI6ImFsaSBmYXJoYW5nbWVociIsInBpY3R1cmUiOiJodHRwczovL2xoNS5nb29nbGV1c2VyY29udGVudC5jb20vLTZLb2lmSmdVVVcwL0FBQUFBQUFBQUFJL0FBQUFBQUFBQTYwL0JiV0Q0ZkVEdkhrL3M5Ni1jL3Bob3RvLmpwZyIsImdpdmVuX25hbWUiOiJhbGkiLCJmYW1pbHlfbmFtZSI6ImZhcmhhbmdtZWhyIiwibG9jYWxlIjoiZW4ifQ.fMbcS3axTumt1hW4_Fss3C3QfLc_Ohhqlj3XfRkDmXixOlnEAV-9GaxI-6IOl0bdh382rJd2Ign4Fjdw8dJ5kGNhMmci9sV-_G50FU3vNH60RptJ04QX7BGrfUOjCJIV5dARJqsCNwqVWItR1F5z-gz9WHA0YKAjMCTWMWSuF03O0yowqzPoajwBLk5VNGOk7Q9fRvKEG7tnTGkckCBSBwWa5KdYnQw-k1OGB9W7qjcQrCelPE8SPzR_GwhHNoAGTOpZXQQSoeDNad8JWbExGZ9MeBDRoaLfLIoV7NRrVaSEwc4wSmga-yqlqjhGaULcdUGOZOasbhDyl28ULEDK2w"] 

Il n'y a pas de problème à ce jour. Ensuite, je dois vérifier si le jeton Google est valide pour que je puisse enregistrer l'utilisateur ou se connecter l'e-mail Ceci est le lien, à la documentation de Google sur cette question https://developers.google.com/identity/sign-in/web/backend-auth

Je suivais tout et mon code PHP ressemble ceci:

$input = $request->all(); 
$google_token = $input['google_token'] = $request->input('googleToken'); 

$client_id = $CLIENT_ID; //from my google console 
$client=new Google_Client(['client_id' => $client_id]); 
$payload=$client->verifyIdToken($google_token); 
$client->verifyIdToken($google_token); 
if ($payload) { 
// do the login or register 
} else { 
    return false; 
} 

et chaque fois que je reçois cette erreur:

(1/1) SignatureInvalidException 
Signature verification failed 
in JWT.php (line 112) 

Error msg

Répondre

0

cette question en raison de nouveaux JWT pour firebase il suffit d'utiliser ancienne version sur JWT il fonctionnera

composer require firebase/php-jwt:4.0