Mit Unity über passwortbasierte Konten bei Firebase authentifizieren

Sie können Firebase Authentication verwenden, damit sich Ihre Nutzer authentifizieren können mit Firebase verwendet seine E-Mail-Adressen und Passwörter sowie zur Verwaltung der passwortbasierte Konten.

Hinweis

Bevor Sie Firebase Authentication verwenden können, müssen Sie Folgendes tun:

  • Registrieren Sie Ihr Unity-Projekt und konfigurieren Sie es für die Verwendung von Firebase.

    • Wenn in Ihrem Unity-Projekt bereits Firebase verwendet wird, ist es bereits für Firebase registriert und konfiguriert.

    • Wenn Sie kein Unity-Projekt haben, können Sie Beispiel-App.

  • Fügen Sie das Firebase Unity SDK (insbesondere FirebaseAuth.unitypackage) hinzu: Ihr Unity-Projekt.

Das Hinzufügen von Firebase zu Ihrem Unity-Projekt umfasst Aufgaben sowohl in der Firebase Console als auch in Ihrem geöffneten Unity-Projekt. Sie laden beispielsweise Firebase-Konfigurationsdateien aus der Console herunter und verschieben sie dann in Ihr Unity-Projekt.

Auf die Klasse Firebase.Auth.FirebaseAuth zugreifen

Die Klasse FirebaseAuth ist das Gateway für alle API-Aufrufe. Sie kann über FirebaseAuth.DefaultInstance aufgerufen werden.
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;

Passwortbasiertes Konto erstellen

Wenn Sie ein neues Nutzerkonto mit einem Passwort erstellen möchten, führen Sie die folgenden Schritte im Anmeldencode Ihrer App aus:

  1. Wenn sich ein neuer Nutzer über das Anmeldeformular Ihrer App registriert, führen Sie alle erforderlichen Schritte zur Kontobestätigung durch, die für Ihre App erforderlich sind. Prüfen Sie beispielsweise, ob das Passwort für das neue Konto korrekt eingegeben wurde und Ihren Anforderungen an die Komplexität entspricht.
  2. Erstelle ein neues Konto, indem du die E-Mail-Adresse und das Passwort des neuen Nutzers an FirebaseAuth.CreateUserWithEmailAndPassword weitergibst:
    auth.CreateUserWithEmailAndPasswordAsync(email, password).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("CreateUserWithEmailAndPasswordAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("CreateUserWithEmailAndPasswordAsync encountered an error: " + task.Exception);
        return;
      }
    
      // Firebase user has been created.
      Firebase.Auth.AuthResult result = task.Result;
      Debug.LogFormat("Firebase user created successfully: {0} ({1})",
          result.User.DisplayName, result.User.UserId);
    });

Nutzer mit E-Mail-Adresse und Passwort anmelden

Die Schritte zum Anmelden eines Nutzers mit einem Passwort ähneln denen zum Erstellen eines neuen Kontos. Führen Sie in der Anmeldefunktion Ihrer App die folgenden Schritte aus:

  1. Wenn sich ein Nutzer in Ihrer App anmeldet, übergeben Sie die E-Mail-Adresse und das Passwort des Nutzers an FirebaseAuth.SignInWithEmailAndPassword:
    auth.SignInWithEmailAndPasswordAsync(email, password).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("SignInWithEmailAndPasswordAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("SignInWithEmailAndPasswordAsync encountered an error: " + task.Exception);
        return;
      }
    
      Firebase.Auth.AuthResult result = task.Result;
      Debug.LogFormat("User signed in successfully: {0} ({1})",
          result.User.DisplayName, result.User.UserId);
    });
  2. Sie können auch die Anmeldedaten erstellen und sich wie bei den anderen Workflows anmelden:
    Firebase.Auth.Credential credential =
        Firebase.Auth.EmailAuthProvider.GetCredential(email, password);
    auth.SignInAndRetrieveDataWithCredentialAsync(credential).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("SignInAndRetrieveDataWithCredentialAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("SignInAndRetrieveDataWithCredentialAsync encountered an error: " + task.Exception);
        return;
      }
    
      Firebase.Auth.AuthResult result = task.Result;
      Debug.LogFormat("User signed in successfully: {0} ({1})",
          result.User.DisplayName, result.User.UserId);
    });

Empfohlen: Passwortrichtlinie festlegen

Sie können die Kontosicherheit verbessern, indem Sie Anforderungen an die Komplexität von Passwörtern erzwingen.

Öffnen Sie die Passwortrichtlinie, um eine Passwortrichtlinie für Ihr Projekt zu konfigurieren auf der Seite "Authentication Settings" (Authentifizierungseinstellungen) der Firebase-Konsole:

Authentifizierungseinstellungen

Die Passwortrichtlinien von Firebase Authentication unterstützen die folgenden Passwortanforderungen:

  • Kleinbuchstaben erforderlich

  • Großbuchstaben erforderlich

  • Numerisches Zeichen erforderlich

  • Nicht alphanumerisches Zeichen erforderlich

    Die folgenden Zeichen erfüllen die Anforderung nicht alphanumerischer Zeichen: ^ $ * . [ ] { } ( ) ? " ! @ # % & / \ , > < ' : ; | _ ~

  • Mindestlänge des Passworts (zwischen 6 und 30 Zeichen; Standardlänge: 6)

  • Maximale Passwortlänge (maximale Länge: 4.096 Zeichen)

Sie können die Erzwingung von Passwortrichtlinien in zwei Modi aktivieren:

  • Erforderlich: Anmeldeversuche schlagen fehl, bis der Nutzer ein Passwort verwendet, das Ihrer Richtlinie entspricht.

  • Benachrichtigen: Nutzer können sich mit einem nicht konformen Passwort anmelden. Wann? sollten Sie überprüfen, ob das Passwort des Nutzers den auf der Clientseite und fordern den Nutzer auf, ein Passwort ein, wenn es nicht den Richtlinien entspricht.

Neue Nutzer müssen immer ein Passwort wählen, das Ihren Richtlinien entspricht.

Wenn Sie aktive Nutzer haben, empfehlen wir, den Modus nur zu aktivieren, wenn Sie Nutzer, deren Passwörter nicht Ihren Richtlinien entsprechen, den Zugriff zu blockieren. Verwenden Sie stattdessen den Benachrichtigungsmodus, mit dem sich Nutzer mit ihrem aktuellen Passwort anmelden können. Sie werden dann über die Anforderungen informiert, die ihr Passwort nicht erfüllt.

Empfohlen: Schutz vor E-Mail-Enumeration aktivieren

Einige Firebase Authentication-Methoden, die E-Mail-Adressen als Parameter annehmen Fehler, wenn die E-Mail-Adresse nicht registriert ist, wenn sie registriert werden muss (z. B. bei der Anmeldung mit einer E-Mail-Adresse und einem Passwort) oder registrierte Wenn sie nicht verwendet werden muss (z. B. beim Ändern der E-Mail-Adresse eines Nutzers). Das kann zwar hilfreich sein, um Nutzern bestimmte Maßnahmen vorzuschlagen, aber auch von böswilligen Akteuren missbraucht werden, um die von Ihren Nutzern registrierten E-Mail-Adressen zu ermitteln.

Um dieses Risiko zu minimieren, empfehlen wir Ihnen, den Schutz vor E-Mail-Aufzählung für Ihr Projekt mit dem Google Cloud-Tool gcloud zu aktivieren. Wenn Sie diese Option aktivieren, Durch diese Funktion ändert sich das Verhalten der Fehlerberichte von Firebase Authentication: App muss installiert sein nicht auf die spezifischeren Fehler.

Nächste Schritte

Nachdem sich ein Nutzer zum ersten Mal angemeldet hat, wird ein neues Nutzerkonto erstellt und mit den Anmeldedaten verknüpft, d. h. mit dem Nutzernamen und Passwort, der Telefonnummer oder den Informationen zum Authentifizierungsanbieter, mit denen sich der Nutzer angemeldet hat. Diese neue -Konto wird als Teil Ihres Firebase-Projekts gespeichert und kann verwendet werden, um in jeder App in Ihrem Projekt einen Nutzer erreichen, unabhängig davon, wie er sich anmeldet.

  • Die grundlegenden Profilinformationen der Nutzer finden Sie in Ihren Apps über die Firebase.Auth.FirebaseUser-Objekt:

    Firebase.Auth.FirebaseUser user = auth.CurrentUser;
    if (user != null) {
      string name = user.DisplayName;
      string email = user.Email;
      System.Uri photo_url = user.PhotoUrl;
      // The user's Id, unique to the Firebase project.
      // Do NOT use this value to authenticate with your backend server, if you
      // have one; use User.TokenAsync() instead.
      string uid = user.UserId;
    }
  • In Ihren Firebase Realtime Database- und Cloud Storage-Sicherheitsregeln können Sie die eindeutige Nutzer-ID des angemeldeten Nutzers aus der Variablen auth abrufen und damit steuern, auf welche Daten ein Nutzer zugreifen kann.

Sie können Nutzern erlauben, sich mit Mehrfachauthentifizierung in Ihrer App anzumelden indem Sie die Anmeldedaten des Authentifizierungsanbieters mit einem eines bestehenden Nutzerkontos.

Rufen Sie auf, um einen Nutzer abzumelden. SignOut():

auth.SignOut();