Authentifizieren Sie sich bei Firebase mit einem benutzerdefinierten Authentifizierungssystem

Sie können die Firebase-Authentifizierung in ein benutzerdefiniertes Authentifizierungssystem integrieren, indem Sie Ihren Authentifizierungsserver so ändern, dass benutzerdefinierte signierte Token erstellt werden, wenn sich ein Benutzer erfolgreich anmeldet. Ihre App empfängt dieses Token und verwendet es zur Authentifizierung bei Firebase.

Bevor Sie beginnen

  1. Wenn Sie dies noch nicht getan haben, folgen Sie den Schritten im Handbuch „Erste Schritte“.
  2. Installieren und konfigurieren Sie das Firebase Admin SDK . Stellen Sie sicher, dass Sie das SDK mit den richtigen Anmeldeinformationen für Ihr Firebase-Projekt initialisieren .

Authentifizieren Sie sich mit Firebase

  1. Wenn sich Benutzer bei Ihrer App anmelden, senden Sie ihre Anmeldeinformationen (z. B. ihren Benutzernamen und ihr Kennwort) an Ihren Authentifizierungsserver. Ihr Server überprüft die Anmeldeinformationen und erstellt bei Gültigkeit ein benutzerdefiniertes Firebase-Token und sendet das Token an Ihre App zurück.

  2. Nachdem Sie das benutzerdefinierte Token von Ihrem Authentifizierungsserver erhalten haben, übergeben Sie es an signInWithCustomToken() , um den Benutzer anzumelden:

    try {
        final userCredential =
            await FirebaseAuth.instance.signInWithCustomToken(token);
        print("Sign-in successful.");
    } on FirebaseAuthException catch (e) {
        switch (e.code) {
            case "invalid-custom-token":
                print("The supplied token is not a Firebase custom auth token.");
                break;
            case "custom-token-mismatch":
                print("The supplied token is for a different Firebase project.");
                break;
            default:
                print("Unkown error.");
        }
    }
    

Nächste Schritte

Nachdem ein Benutzer ein neues Konto erstellt hat, wird dieses Konto als Teil Ihres Firebase-Projekts gespeichert und kann verwendet werden, um einen Benutzer in jeder App in Ihrem Projekt zu identifizieren, unabhängig davon, welche Anmeldemethode der Benutzer verwendet hat.

In Ihren Apps können Sie die grundlegenden Profilinformationen des Benutzers aus dem User abrufen. Siehe Benutzer verwalten .

In Ihren Firebase-Echtzeitdatenbank- und Cloudspeicher-Sicherheitsregeln können Sie die eindeutige Benutzer-ID des angemeldeten Benutzers aus der auth -Variable abrufen und damit steuern, auf welche Daten ein Benutzer zugreifen kann.

Sie können Benutzern erlauben, sich mit mehreren Authentifizierungsanbietern bei Ihrer App anzumelden, indem Sie die Anmeldeinformationen des Authentifizierungsanbieters ) mit einem vorhandenen Benutzerkonto verknüpfen .

Um einen Benutzer abzumelden, rufen signOut() :

await FirebaseAuth.instance.signOut();