3

J'ai obtenu les terminaux google cloud fonctionnant avec une application et un backend Android écrits dans le moteur de l'application python. Lorsque j'ai désinstallé et réinstallé mon application pendant le développement, j'ai commencé à rencontrer une erreur 401 du backend. C'est sans aucun changement dans le backend après que je l'ai eu à travailler la première fois. Ainsi,La vérification d'id_token a échoué: signature de jeton non valide: dans les terminaux google cloud

  1. Je nettoyé debug.keystore fichier dans C: \ Users \ nom d'utilisateur \ .android et également d'autres fichiers dans le même directory.Regenerated le fichier de debug.keystore à nouveau et a obtenu la nouvelle empreinte SHA1

  2. supprimé le projet API dans la console google apps et régénérée web cLIENT_ID & android client_id avec une nouvelle empreinte SHA1

  3. occasion le nouveau client_id Web et Android client_id dans le code côté serveur

  4. aussi mis à jour Android cliend_id portée du public dans le code Android

Après avoir installé l'application maintenant, voir toujours la même erreur 401. Mes journaux moteur app montrer,

I 2013-04-07 16:45:27.297 Checking for id_token. 
W 2013-04-07 16:45:27.299 id_token verification failed: Invalid token signature: eyJhbGciOiJSUzI1NiIsImtpZCI6IjMzMTJkNDc0ZWUzNWRjNWU4YzFhMDE4OTkzOGZkN2E3YmUzYmRlZjYifQ.eyJpc3Mi 
I 2013-04-07 16:45:27.299 Checking for oauth token. 

Je suis en mesure de recueillir plus d'informations basé sur Cloud endpoints oauth2 error et http://android-developers.blogspot.com/2013/01/verifying-back-end-calls-from-android.html,

Je décodées le id_token étant envoyé au serveur app_engine et a constaté qu'il a ces champs,

cid = Android app client_id that I registered in app console for 
azp = Android app client_id 
aud = web client_id for App engine 
iss = accounts.google.com 
verified_email = true 
email_verified = true 
email = account i selected in account picker in android app 
exp = a datetime having a value in the future 
first_segment = {u'alg': u'RS256', u'kid': u'3312d474ee35dc5e8c1a0189938fd7a7be3bdef6'} 

Les valeurs ci-dessus semblent correctes, mais id_verification échoue. Pas certain de pourquoi.


A eu le problème à nouveau. Ça arrive, quand je réinstalle mon application après la désinstallation. Le service de points Cloudend a généré une erreur de jeton non valide. Utilisé le jeton et vérifié en utilisant l'URL. Obtenez une sortie comme ci-dessous, ce qui signifie que le jeton est valide.

"issuer": "accounts.google.com", 
"issued_to": "172895167251-1prp5r093hf2nro5bei2cmc1tqf4aasdu.apps.googleusercontent.com", 
"audience": "172895167251.apps.googleusercontent.com", 
"user_id": "myuserid", 
"expires_in": 3086, 
"issued_at": 1365644284, 
"email": "emailIselectedinadroidapp", 
"verified_email": true 
+0

Il semble fonctionner très bien maintenant. Je n'obtiens pas l'erreur Échec de la vérification de l'ID. Je n'ai rien fait, ça a simplement commencé à fonctionner comme par magie. Peut-être que c'est un problème de mise en cache sur le côté google. – plspl

+0

Un problème est survenu, https: //code.google.com/p/googleappengine/issues/detail? Id = 9188 – plspl

Répondre

0

Intéressant. Qu'est-ce qui se passe si vous envoyez le id_token à tokeninfo point final ?:

https://www.googleapis.com/oauth2/v1/tokeninfo?id_token= $ id_token

+0

Merci ... j'essaierai de le faire lorsque j'aurai à nouveau rencontré l'erreur. N'a pas fait face à cette erreur jusqu'à maintenant. – plspl

+0

Encore une fois, j'ai mis à jour ma question originale avec les résultats. – plspl

Questions connexes