Die neueste Version des Google Identity Toolkit wurde als Firebase Authentication. Künftig werden Funktionen im Identity Toolkit eingefroren und alle neuen Funktionen Die Funktionsentwicklung erfolgt in Firebase Authentication. Wir empfehlen Identity Toolkit-Entwickler sollten so schnell wie möglich zu Firebase Authentication wechseln für ihre Anwendungen praktisch sind; Identity Toolkit funktioniert jedoch weiterhin und werden ohne eine weitere Ankündigung nicht eingestellt.
Neue Funktionen
Bei Firebase Authentication wurden einige wichtige Funktionserweiterungen bereits Google Identity Toolkit:
Zugriff auf alle Funktionen von Firebase
Firebase ist eine mobile Plattform, mit der Sie schnell mehr Nutzer gewinnen und höhere Einnahmen erzielen. Firebase besteht aus ergänzenden Funktionen, die Sie an Ihre Anforderungen anpassen können, umfasst Infrastruktur für: Analysen für Mobilgeräte cloud Messaging Realtime Database, Dateispeicher, Statisches Hosting Remote-Konfiguration, Absturzberichte für Mobilgeräte und Android-Tests.
Aktualisierte Benutzeroberflächen
Wir haben die UI-Abläufe auf Basis der neuesten UX-Funktionen von Google Forschung. Dazu gehören Passwortwiederherstellung, Kontoverknüpfung, neue/bestehende Abläufe zur Unterscheidung von Konten, die häufig viel Zeit für die Programmierung und . Es ist mit Smart Lock für Passwörter integriert. auf Android-Geräten eingeführt, was die Anmeldung und Registrierungen deutlich verbessert hat. für teilnehmende Apps. Das Design kann leicht an Ihre App angepasst werden. maximale Anpassbarkeit bietet die Android- und iOS als Open Source verfügbar.
Vereinfachte Servereinrichtung
Wir haben die Verwendung von Firebase Authentication für Entwickler vereinfacht. Mit Identity Toolkit stellten wir fest, dass viele Entwickler das Tool E-Mail-Wiederherstellungsvorgang, durch den die Nutzer ihre Daten nicht wiederherstellen konnten. wenn sie ihr Passwort vergessen haben. Firebase Authentication kann E-Mail-Bestätigung, Passwortzurücksetzung und Passwortänderung senden an Der Text lässt sich leicht anpassen für Ihre Nutzer. Außerdem müssen Sie die UI-Widgets für das Hosten von Weiterleitungen und die Durchführung von Passwortänderungsvorgängen.
Neue Admin-Konsole
Firebase hat eine neue Entwicklerkonsole Im Bereich „Authentifizierung“ können Sie Ihre Nutzenden. Dies kann beim Debuggen Ihrer Anmelde- und Anmeldevorgänge sehr hilfreich sein. In der Konsole können Sie auch Authentifizierungsmethoden konfigurieren und E-Mail-Vorlagen anpassen.
Neue SDKs
Alle Server-APIs von Identity Toolkit sind jetzt nativ bei jedem unserer Client-Bibliotheken (Android, iOS, Web). Entwickler können alte und neue Nutzer anmelden, auf Nutzereigenschaften zugreifen, Konten löschen, Passwörter zurücksetzen und vieles mehr, ohne an eine feste Benutzeroberfläche gebunden zu sein. Wenn Sie möchten, können Sie auch manuell Ihren eigenen gesamten Anmeldevorgang erstellen und zusätzlich zu dieser API.
Sitzungsverwaltung für mobile Apps
Mit Identity Toolkit haben Anwendungen einen eigenen Sitzungsstatus basierend auf dem erstes Authentifizierungsereignis aus Identity Toolkit. Firebase Auth verwendet eine Back-End-Dienst, der ein Aktualisierungstoken annimmt, das aus der Authentifizierung erstellt wurde und tauscht es gegen einstündige Zugriffstokens für Android, iOS und JavaScript Wenn ein Nutzer sein Passwort ändert, werden Aktualisierungstokens nicht länger in der Lage sein, neue Zugriffstokens zu generieren, wodurch der Zugriff deaktiviert wird, bis authentifiziert sich der Nutzer auf diesem Gerät noch einmal.
Anonyme und GitHub-Authentifizierung
Firebase Authentication unterstützt zwei neue Authentifizierungstypen: GitHub und anonym bleiben. Die anonyme Anmeldung kann verwendet werden, um eine eindeutige Nutzer-ID zu erstellen, Der Nutzer muss einen Anmelde- oder Registrierungsvorgang durchlaufen. Mit einem anonyme Nutzer erhalten, können Sie jetzt authentifizierte API-Aufrufe durchführen, mit einem regulären Nutzer. Wenn sich ein Nutzer für ein Konto entscheidet, werden die Aktivitäten unter derselben User-ID gespeichert. Dies ist ideal für Situationen, etwa einen serverseitigen Einkaufswagen oder eine Anwendung, bevor sie einen Anmeldevorgang durchlaufen.
Funktionsunterschiede
Einige Identity Toolkit-Funktionen sind derzeit in Firebase nicht verfügbar Die Authentifizierung. Andere Funktionen wurden neu gestaltet und funktionieren anders. Sie migrieren nicht sofort, wenn diese Funktionen für Ihre App. In vielen Fällen sind diese Funktionen für Ihre App oder kann es einfache Fallbacks geben, die es Ihnen ermöglichen, mit der Migration fortzufahren.
Serverseitige Unterschiede
Der Identity Toolkit-Kerndienst mit den zugrunde liegenden REST APIs, Konto Validierungslogik und primäre Benutzerdatenbank nur geringfügig aktualisiert wurden. Einige Funktionen und die Art und Weise, wie Sie Firebase Authentication einbinden, in Ihren Dienst geändert hat.
Identitätsanbieter
PayPal und AOL werden nicht unterstützt. Nutzer mit können sich mit Konten von diesen IdPs trotzdem mit dem Ablauf der Passwortwiederherstellung und das Einrichten eines Passworts für ihr Konto.
Serverbibliotheken
Derzeit gibt es Firebase-Admin-SDKs verfügbar für Java, Node.js, Python, Go und C#.
E-Mails zur Kontoverwaltung
Nachrichten zum Zurücksetzen von Passwörtern, E-Mail-Bestätigung und E-Mail-Änderungen können von Firebase oder vom Entwickler eigenen E-Mail-Server. Derzeit bieten Firebase-E-Mail-Vorlagen nur Personalisierung.
Bestätigung der Änderung der E-Mail-Adresse
Wenn ein Nutzer im Identity Toolkit seine E-Mail-Adresse ändert, sendet eine E-Mail mit einem Link zum Fortfahren an die neue Adresse Ablauf bei der Adressänderung.
Firebase bestätigt die Änderung der E-Mail-Adresse, indem eine E-Mail zum Widerrufen der Einwilligung an die alte E-Mail-Adresse mit einem Link, über den Sie die Änderung rückgängig machen können.
IdP-Einführung
Mit dem Identity Toolkit konnten Sie Ihren Anmeldedaten Identitätsanbieter hinzufügen damit Sie die Auswirkungen auf Ihre Kampagnen -Supportanfragen. Diese Funktion wurde in Firebase Authentication entfernt.
Clientseitige Unterschiede
In Firebase sind die Funktionen des Google Identity Toolkit zweigeteilt. Komponenten:
Firebase Authentication SDKs
Bei Firebase Authentication werden die Funktionen des Identity Toolkits Die REST API wurde in Client-SDKs gepackt, die für Android, iOS und JavaScript Sie können das SDK verwenden, um Nutzer anzumelden und zu registrieren. Nutzer mit Zugriff Profilinformationen Konten verknüpfen, aktualisieren und löschen; und Passwörter zurücksetzen mit dem Client-SDK statt über den Back-End-Dienst REST-Aufrufe
FirebaseUI-Authentifizierung
Alle UI-Abläufe, die Anmeldung, Anmeldung, Passwortwiederherstellung und Die Kontoverknüpfung wurde mithilfe der Frebase Authentication SDKs neu erstellt. Sie sind als Open-Source-SDKs für iOS und Android verfügbar, damit Sie die Abläufe auf eine Art und Weise vollständig anpassen, die mit Identity Toolkit nicht möglich ist.
Weitere Unterschiede sind:
Sitzungen und Migration
Weil Sitzungen in Identity Toolkit und Firebase unterschiedlich verwaltet werden Authentifizierung, werden bestehende Sitzungen und Ihre Nutzer müssen sich noch einmal anmelden.
Hinweis
Bevor Sie von Identity Toolkit zu Firebase Authentication migrieren können, muss
Öffnen Sie die Firebase Console und klicken Sie auf Importieren Sie das Google-Projekt und wählen Sie Ihr Identity Toolkit-Projekt aus.
Klicken Sie auf settings > Berechtigungen zum Öffnen der IAM und Seite „Verwaltung“.
Öffne die Dienstkonten. Hier sehen Sie das Dienstkonto, zuvor für Identity Toolkit konfiguriert wurden.
Klicken Sie neben dem Dienstkonto auf more_vert > Schlüssel erstellen. Geben Sie dann im Feld Dialogfeld Privaten Schlüssel erstellen, legen Sie den Schlüsseltyp auf JSON fest und klicken Sie auf Erstellen: Eine JSON-Datei mit den Anmeldedaten Ihres Dienstkontos wird für dich heruntergeladen. Sie benötigen ihn im nächsten Schritt, um das SDK zu initialisieren.
Kehren Sie zur Firebase Console zurück. Öffnen Sie im Abschnitt "Auth" die Seite E-Mail-Vorlagen. Auf dieser Seite E-Mail-Vorlagen Ihrer App anpassen.
Wenn Nutzer im Identity Toolkit Passwörter zurücksetzen, E-Mail-Adressen ändern und E-Mail-Adressen bestätigt haben, musst du einen OOB-Code vom Identity Toolkit-Server und senden Sie den Code per E-Mail an die Nutzer. Firebase sendet E-Mails basierend auf den von Ihnen konfigurierten Vorlagen ohne weitere Aktionen erforderlich.
Optional: Wenn Sie auf Ihrem Server auf Firebase-Dienste zugreifen müssen, Installieren Sie das Firebase SDK.
Sie können das Firebase Node.js-Modul mit
npm
installieren:$ npm init $ npm install --save firebase-admin
In Ihrem Code können Sie so auf Firebase zugreifen:
var admin = require('firebase-admin'); var app = admin.initializeApp({ credential: admin.credential.cert('path/to/serviceAccountCredentials.json') });
Führen Sie als Nächstes die Migrationsschritte für die Plattform Ihrer App aus: Android, iOS, Web.
Server und JavaScript
Wichtige Änderungen
Es gibt eine Reihe weiterer Unterschiede bei der Webimplementierung von Firebase aus Identity Toolkit.
Websitzung verwalten
Wenn sich ein Nutzer bisher mit dem Identity Toolkit-Widget authentifiziert hat, Für den Nutzer wurde ein Cookie gesetzt, das für das Bootstrap der Sitzung verwendet wurde. Dieses Cookie hat eine Lebensdauer von zwei Wochen und wurde verwendet, um dem Nutzer das Kontoverwaltungs-Widget, um das Passwort und die E-Mail-Adresse zu ändern. Einige Websites verwendet dieses Cookie zur Authentifizierung aller anderen Seitenanfragen der Website. Andere Websites haben das Cookie verwendet, um über ihre eigenen Cookie-Verwaltungssystem des Frameworks.
Firebase-Client-SDKs verwalten jetzt Firebase-ID-Tokens und arbeiten Sie mit dem Firebase Authentication-Backend zusammen, um die Sitzung aktuell zu halten. Das Backend läuft bei wichtigen Kontoänderungen ab, z. B. bei Passwortänderungen) aufgetreten sind. Firebase-ID-Tokens werden nicht automatisch im Webclient als Cookies festgelegt und nur eine Stunde lang gültig. Es sei denn, Sie nur Sitzungen von einer Stunde wünschen, sind Firebase-ID-Tokens nicht geeignet. als Cookie verwendet, um alle Ihre Seitenanfragen zu überprüfen. Stattdessen werden Sie müssen Sie einen Zuhörer einrichten. wenn sich der Nutzer anmeldet, das Firebase-ID-Token abrufen, Token validieren und erstellen über das Cookie-Verwaltungssystem Ihres Frameworks.
Legen Sie die Sitzungslebensdauer des Cookies anhand der Sicherheitsanforderungen Ihrer Anwendung.
Webanmeldung
Bisher wurden Nutzer bei der Anmeldung zu
accountchooser.com
weitergeleitet um zu erfahren, welche Kennung der Nutzer verwenden wollte. Firebase-Authentifizierung Der Vorgang der Benutzeroberfläche beginnt jetzt mit einer Liste von Anmeldemethoden, einschließlich einer E-Mail-Adresse die zuaccountchooser.com
für das Web führt und hintRequest API aktiviert Android Außerdem sind E-Mail-Adressen in Firebase nicht mehr erforderlich. UI. Dies vereinfacht die Unterstützung anonymer Nutzer, benutzerdefinierter Authentifizierungsnutzer oder Nutzer von Anbietern, bei denen keine E-Mail-Adresse erforderlich ist.Kontoverwaltungs-Widget
Dieses Widget stellt eine Benutzeroberfläche bereit, über die Nutzer E-Mail-Adressen, oder die Verknüpfung ihrer Konten mit Identitätsanbietern aufheben. Aktuell in der Entwicklungsphase ist.
Anmeldeschaltfläche/-Widget
Widgets wie die Anmeldeschaltfläche und die Nutzerkarte sind nicht mehr verfügbar. Sie lässt sich ganz einfach mit der Firebase Authentication API erstellen.
No signOutUrl
Du musst
firebase.auth.signOut()
aufrufen und den Callback verarbeiten.Keine oobActionUrl
Das Senden von E-Mails wird jetzt von Firebase durchgeführt und in Firebase konfiguriert .
CSS-Anpassung
FirebaseUI verwendet Material Design Lite-Stile, die fügt Material Design-Animationen dynamische Animationen hinzu.
Schritt 1: Servercode ändern
Wenn Ihr Server das Identity Toolkit-Token (2 Wochen lang gültig) benötigt, um Webnutzersitzungen verwalten, müssen Sie den Server konvertieren, um seine Sitzungs-Cookie.
- Endpunkt zum Validieren des Firebase-ID-Tokens implementieren und das Sitzungscookie für den Nutzer setzen. Die Client-App sendet das Ereignis Firebase-ID-Token an diesen Endpunkt.
- Wenn die eingehende Anfrage Ihr eigenes Sitzungscookie enthält, können Sie dass der Nutzer authentifiziert ist. Behandeln Sie die Anfrage ansonsten wie nicht authentifiziert ist.
- Wenn Sie nicht möchten, dass Nutzer ihre Anmeldedaten verlieren 2 Wochen warten, bis alle Identity Toolkit-Tokens vorliegen oder die Dual-Token-Validierung für Ihre Webanwendung wie unten in Schritt 3 beschrieben.
Da sich die Firebase-Tokens vom Identity Toolkit unterscheiden, Tokens müssen Sie Ihre Tokenvalidierungslogik aktualisieren. Installieren Sie das Firebase Server SDK auf Ihrem Server. oder, wenn Sie eine Sprache, die vom Firebase Server SDK nicht unterstützt wird, laden Sie eine Bibliothek für die Validierung von JWT-Tokens herunter. für Ihre Umgebung und validieren Sie das Token.
Wenn Sie die oben genannten Änderungen erstmals vornehmen, sind Identity Toolkit-Tokens erforderlich. Wenn Sie iOS- oder Android-Apps verwenden, müssen Nutzer ein Upgrade auf die neue Version der App durchführen, um funktionieren die neuen Codepfade. Wenn Sie Ihre Nutzer nicht zu einem Update Ihrer Anwendung eine zusätzliche Servervalidierungslogik hinzufügen, die die und bestimmt, ob das Firebase SDK oder das Identity Toolkit SDK verwenden, um das Token zu validieren. Wenn Sie nur eine Web-Property werden alle neuen Authentifizierungsanfragen Firebase. Daher müssen Sie nur das Firebase-Token verwenden, zu überprüfen.
Weitere Informationen finden Sie in der Referenz zur Firebase Web API.
Schritt 2: HTML aktualisieren
Fügen Sie Ihrer App den Firebase-Initialisierungscode hinzu:
- Öffnen Sie Ihr Projekt in der Firebase Console.
- Klicken Sie auf der Übersichtsseite auf App hinzufügen und dann auf Firebase zu Ihrem Web-App. Ein Code-Snippet zum Initialisieren von Firebase wird angezeigt.
- Kopieren Sie das Initialisierungs-Snippet und fügen Sie es auf Ihrer Webseite ein.
Fügen Sie FirebaseUI Auth hinzu. zu Ihrer App:
<script src="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.js"></script> <link type="text/css" rel="stylesheet" href="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.css" /> <!-- ******************************************************************************************* * TODO(DEVELOPER): Paste the initialization snippet from: * Firebase Console > Overview > Add Firebase to your web app. * ***************************************************************************************** --> <script type="text/javascript"> // FirebaseUI config. var uiConfig = { 'signInSuccessUrl': '<url-to-redirect-to-on-success>', 'signInOptions': [ // Leave the lines as is for the providers you want to offer your users. firebase.auth.GoogleAuthProvider.PROVIDER_ID, firebase.auth.FacebookAuthProvider.PROVIDER_ID, firebase.auth.TwitterAuthProvider.PROVIDER_ID, firebase.auth.GithubAuthProvider.PROVIDER_ID, firebase.auth.EmailAuthProvider.PROVIDER_ID ], // Terms of service url. 'tosUrl': '<your-tos-url>', }; // Initialize the FirebaseUI Widget using Firebase. var ui = new firebaseui.auth.AuthUI(firebase.auth()); // The start method will wait until the DOM is loaded. ui.start('#firebaseui-auth-container', uiConfig); </script>
Entfernen Sie das Identity Toolkit SDK aus Ihrer Anwendung.
Wenn Sie für die Sitzungsverwaltung das Identity Toolkit-ID-Token verwendet haben, muss clientseitig folgende Änderungen vorgenommen werden:
Nachdem Sie sich in Firebase angemeldet haben, erhalten Sie ein Firebase-ID-Token, indem Sie
firebase.auth().currentUser.getToken()
wird angerufen.Senden Sie das Firebase-ID-Token an den Backend-Server, validieren Sie es und geben Sie Ihr eigenes Sitzungs-Cookie.
Verlassen Sie sich bei der Durchführung sensibler Daten nicht ausschließlich auf das Sitzungscookie oder das Senden authentifizierter Bearbeitungsanfragen an Ihren Server. Ich muss eine zusätzliche Cross-Site Request Forgery (CSRF) bereitstellen zu schützen.
Wenn Ihr Framework keinen CSRF-Schutz bietet, können Sie mithilfe einer Ein Angriff besteht darin, ein Firebase-ID-Token für den angemeldeten Nutzer zu erhalten. durch
getToken()
und fügen Sie das Token bei jeder Anfrage hinzu (die Sitzung Cookies ebenfalls standardmäßig gesendet. Anschließend validieren Sie das Token. das Firebase Server SDK zusätzlich zur Sitzungscookie-Prüfung verwendet, das Ihr Back-End-Framework abgeschlossen hat. Dadurch wird es schwieriger, um CSRF-Angriffe zu verhindern, da das Firebase-ID-Token nur mit und niemals in einem Cookie.Identity Toolkit-Tokens sind zwei Wochen lang gültig. Vielleicht möchten Sie oder Sie stellen Tokens aus, die zwei Wochen gültig sind. je nach den Sicherheitsanforderungen Ihrer App länger oder kürzer. Löschen Sie das Sitzungscookie, wenn sich ein Nutzer abmeldet.
Schritt 3: IdP-Weiterleitungs-URLs aktualisieren
Öffnen Sie in der Firebase Console den Abschnitt „Authentifizierung“ und klicken Sie auf das Tab Sign-in Method (Anmeldemethode) an.
Führen Sie für jeden Anbieter für föderierte Anmeldungen, den Sie unterstützen, die folgenden Schritte aus:
- Klicken Sie auf den Namen des Anbieters für Anmeldungen.
- Kopieren Sie den OAuth-Weiterleitungs-URI.
- Aktualisieren Sie in der Entwicklerkonsole des Anbieters für Anmeldungen die OAuth-Weiterleitung. URI.
Android
Schritt 1: Firebase Ihrer App hinzufügen
Öffnen Sie die Firebase Console und wählen Sie das Identity Toolkit-Projekt aus, das Sie bereits importiert haben.
Klicken Sie auf der Übersichtsseite auf App hinzufügen und dann auf Firebase hinzufügen zu Android-App Geben Sie im Dialogfeld „Firebase hinzufügen“ das Paket Ihrer App an. Name und Fingerabdruck des Signaturzertifikats und klicken Sie auf App hinzufügen. Die Die Konfigurationsdatei
google-services.json
wird dann in Ihren Computer.Kopieren Sie die Konfigurationsdatei in das Modulstammverzeichnis Ihrer Android-App. Dieses Die Konfigurationsdatei enthält Informationen zum Projekt und zum Google OAuth-Client.
In der Datei
build.gradle
auf Projektebene (<var>your-project</var>/build.gradle
), gib den Paketnamen deiner App in dem AbschnittdefaultConfig
:defaultConfig { ….. applicationId "com.your-app" }
Fügen Sie außerdem in der Datei
build.gradle
auf Projektebene eine Abhängigkeit hinzu, die eingeschlossen werden soll das Plug-in „google-services“:buildscript { dependencies { // Add this line classpath 'com.google.gms:google-services:3.0.0' } }
In der Datei „
build.gradle
“ auf App-Ebene (<var>my-project</var>/<var>app-module</var>/build.gradle
), fügen Sie den folgende Zeile nach unten, um das Plug-in "google-services" zu aktivieren:// Add to the bottom of the file apply plugin: 'com.google.gms.google-services'
Das Plug-in „google-services“ verwendet die Datei
google-services.json
zur Konfiguration um Firebase zu verwenden.Fügen Sie außerdem in der Datei
build.gradle
auf App-Ebene die Firebase Authentication hinzu. Abhängigkeit:compile 'com.google.firebase:firebase-auth:23.0.0' compile 'com.google.android.gms:play-services-auth:21.2.0'
Schritt 2: Identity Toolkit SDK entfernen
- Identity Toolkit-Konfiguration aus
AndroidManifest.xml
entfernen -Datei. Diese Informationen sind in der Dateigoogle-service.json
enthalten und die vom Plug-in „google-services“ geladen wurden. - Entfernen Sie das Identity Toolkit SDK aus Ihrer Anwendung.
Schritt 3: FirebaseUI zu Ihrer App hinzufügen
Fügen Sie FirebaseUI Auth hinzu. zu Ihrer App hinzufügen.
Ersetzen Sie in Ihrer App die Aufrufe des Identity Toolkit SDK durch Aufrufe von FirebaseUI
iOS
Schritt 1: Firebase Ihrer App hinzufügen
Fügen Sie Ihrer App das Firebase SDK hinzu, indem Sie die folgenden Befehle ausführen:
$ cd your-project directory $ pod init $ pod 'Firebase'
Öffnen Sie die Firebase Console und wählen Sie das Identity Toolkit-Projekt aus, das Sie bereits importiert haben.
Klicken Sie auf der Übersichtsseite auf App hinzufügen und dann auf Firebase hinzufügen zu Ihrer iOS-App. Geben Sie im Dialogfeld „Firebase hinzufügen“ die Bundle-ID Ihrer App und App Store-ID aus und klicken Sie dann auf App hinzufügen. Die Die Konfigurationsdatei
GoogleService-Info.plist
wird dann in Ihren Computer. Wenn Sie in Ihrem Projekt mehrere Bundle-IDs haben, kann jede Bundle-ID muss in der Firebase Console verbunden sein, damit sieGoogleService-Info.plist
-Datei.Kopieren Sie die Konfigurationsdatei in das Stammverzeichnis Ihres Xcode-Projekts und fügen Sie sie für alle Ziele.
Schritt 2: Identity Toolkit SDK entfernen
- Entfernen Sie
GoogleIdentityToolkit
aus der Podfile-Datei Ihrer Anwendung. - Führe den Befehl
pod install
aus.
Schritt 3: FirebaseUI zu Ihrer App hinzufügen
Fügen Sie FirebaseUI Auth hinzu. zu Ihrer App hinzufügen.
Ersetzen Sie in Ihrer App die Aufrufe des Identity Toolkit SDK durch Aufrufe von FirebaseUI