2016-05-23 17 views
1

Ich möchte Google Sign-In in meine Android-App integrieren, aber es gibt ein wenig Verwirrung. Wenn ich das ID-Token von GoogleSignInAccount erhalte, sollte ich es auf dem Gerät speichern und es bei jeder Anfrage als Authentifizierungs-Token an den Server senden? Oder gibt es einen anderen bevorzugten Weg, d. H. Ich sende das ID-Token einmal, erzeuge dann ein anderes Authentifizierungstoken auf meinem Server, sende es an das Gerät, speichere es auf dem Gerät und benutze es als ein Authentifikationstoken. Ich frage, weil das Senden des ID-Tokens jedes Mal teuer ist, weil es ein ziemlich langer String ist und seine Integritätsprüfung auf der Serverseite auch zeitaufwendig ist.Google-Anmeldeauthentifizierung

+0

Ich habe immer noch nicht die Antwort. Wenn meine App das ID-Token an den Server sendet, überprüft der Server das ID-Token und erhält die tatsächliche Google-Nutzer-ID. Und was ist dann? Wie authentifiziere ich die folgenden Anfragen von meiner App an den Server? Woher weiß der Server, welcher Benutzer die Anfragen stellt? – Salivan

+1

Erstellen Sie ein neues Authentifizierungssystem oder fügen Sie Google Sign-In einem vorhandenen System hinzu? Wenn es sich um ein bestehendes System handelt, verwenden Sie Ihre aktuelle Sitzungsverwaltung. Wenn es sich um ein neues System handelt, verwenden Sie einfach Firebase Auth, das die Sitzungsverwaltung für Sie übernimmt und Ihnen die einfache Konfiguration von E-Mail/Facebook/Google Sign-In ermöglicht: https://www.firebase.com/docs/web/guide/ user-auth.html –

+0

Danke für das Zeigen auf Firebase. Ich werde es auf jeden Fall überprüfen. – Salivan

Antwort

1

Sie müssen das Authentication-Token an den Server senden. Dann wird vom Server eine eindeutige ID generiert, die Sie dann in der gesamten App verwenden.

+0

Was generiert die eindeutige ID? Mich? Und dann zurück zur App, speichern Sie es auf dem Gerät und senden Sie es mit jeder Anfrage an den Server, ja? – Salivan

0

Sie sollten das Authentifizierungstoken nicht an den Server senden. Warum? Da das Authentifizierungstoken nur von kurzer Dauer ist, wird die Validierung mit Google nach einer Weile fehlschlagen, wenn das Token abläuft. Das Problem ist, dass Google keine Dokumentation für ein Aktualisierungstoken bereitstellt, mit dem das Authentifizierungstoken neu generiert werden kann.

Angenommen, Sie speichern einige Token im Server-Cache, Firebase Auth hilft, die Token-ID zu verifizieren und mithilfe eines Aktualisierungstokens unter der Haube zu regenerieren. Außerdem müssten Sie jetzt auf dem Client das Ergebnis der Task FirebaseAuth.getInstance().getCurrentUser().getToken() an Ihren Server senden. Dieses Token oder ein anderes Token, das mit diesem Token generiert wurde, kann sicher zwischengespeichert werden.

Ich habe warum Firebase Auth here und wie Firebase Auth here.