Google gibt immer abgelaufene ID-Token zurück (JWT)

9

Nach Ссылка

  

Wenn Sie die ID-Token-Ablaufzeit verwenden, um die Lebensdauer Ihrer Sitzung zu bestimmen, sollten Sie ein aktualisierbares ID-Token abrufen, indem Sie vor jedem API-Aufruf auf Ihrem Anwendungsserver silentSignIn aufrufen.

Ich versuche, ein neues Token durch Aufruf von SilentSignIn zu erhalten. Aber ich bekomme immer den gleichen abgelaufenen ID-Token. Kann jemand bitte mir helfen, auf die richtige Dokumentation hinzuweisen, die zeigt, wie erzwungen wird, um ein neues Token zu erhalten. Mein Code ist nichts besonderes. Es ist fast das Gleiche wie das, was wir in Google's Beispiel haben.

%Vor%

Ich erstelle meine API wie oben und wenn der Benutzer auf die Anmeldung mit google button klickt, führe ich die folgende Aktion durch

%Vor% Die Methode

handleSignInResult würde das ID-Token als

erhalten %Vor%

BEARBEITEN 1

Ich habe eine andere verwandte Frage.

Nachdem ich die Berechtigung von Ссылка zurückgezogen habe, konnte ich immer noch den ID-Token abrufen ( JWT). Angenommen, dieses Token wird zwischengespeichert und von Android Play Services wird es von einer lokalen Kopie bereitgestellt. Nachdem der Token abgelaufen ist (60 Minuten), sollte der Dienst den Google-Dienst kontaktieren, um den neuesten Status zu erhalten. Aber ich sehe das nicht. In der Tat, eine andere seltsame Sache, die ich bemerkt habe, ist, wenn ich SilentSignIn () nach etwa einem Tag oder so aufrufen, bekomme ich ein neues Token ohne Zustimmung des Benutzers. Kann jemand bitte diesen Anwendungsfall testen und mir die Ausgabe mitteilen.

Wie kann ich sicherstellen, dass Benutzer aufgefordert werden, die Erlaubnis erneut zu erteilen, wenn sie sie widerrufen haben.

    
rakesh kashyap 21.05.2016, 12:54
quelle

1 Antwort

1

Sie müssen startActivityForResult() verwenden und dann das Anmeldeergebnis in onActivityResult() behandeln, wie hier erklärt. Google-Anmeldung in Ihre Android-App integrieren . Um die Echtheit des Tokens zu überprüfen, lesen Sie bitte im Google-Leitfaden für Google Sign-In für Android nach, wie Sie Authentifizierung mit einem Backend-Server .

Eine einfache Möglichkeit besteht darin, das Token an den Google tokeninfo-Endpunkt zu übergeben https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=XYZ123 wobei XYZ123 Ihr Token ist.

    
Vinnie 26.05.2016 20:37
quelle

Tags und Links