Sie können die Firebase-Authentifizierung verwenden, damit sich Ihre Benutzer mit ihren E-Mail-Adressen und Passwörtern bei Firebase authentifizieren und die passwortbasierten Konten Ihrer App verwalten können.
Bevor Sie beginnen
- Fügen Sie Ihrem JavaScript-Projekt Firebase hinzu .
- Wenn Sie Ihre App noch nicht mit Ihrem Firebase-Projekt verbunden haben, tun Sie dies über die Firebase-Konsole .
- Anmeldung per E-Mail/Passwort aktivieren:
- Öffnen Sie in der Firebase-Konsole den Abschnitt Auth .
- Aktivieren Sie auf der Registerkarte Anmeldemethode die Anmeldemethode E- Mail/Kennwort und klicken Sie auf Speichern .
Erstellen Sie ein passwortbasiertes Konto
Führen Sie die folgenden Schritte auf der Anmeldeseite Ihrer App aus, um ein neues Benutzerkonto mit einem Passwort zu erstellen:
- Wenn sich ein neuer Benutzer über das Anmeldeformular Ihrer App anmeldet, führen Sie alle neuen Schritte zur Kontovalidierung durch, die Ihre App erfordert, wie z. B. die Überprüfung, ob das Passwort des neuen Kontos richtig eingegeben wurde und Ihren Komplexitätsanforderungen entspricht.
- Erstellen Sie ein neues Konto, indem Sie die E-Mail-Adresse und das Passwort des neuen Benutzers an
createUserWithEmailAndPassword
:Wenn das neue Konto erstellt wurde, wird der Benutzer automatisch angemeldet. Werfen Sie einen Blick auf den Abschnitt „Nächste Schritte“ unten, um die angemeldeten Benutzerdetails zu erhalten.Web version 9
import { getAuth, createUserWithEmailAndPassword } from "firebase/auth"; const auth = getAuth(); createUserWithEmailAndPassword(auth, email, password) .then((userCredential) => { // Signed in const user = userCredential.user; // ... }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; // .. });
Web version 8
firebase.auth().createUserWithEmailAndPassword(email, password) .then((userCredential) => { // Signed in var user = userCredential.user; // ... }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; // .. });
Hier können Sie auch Fehler abfangen und behandeln. Eine Liste der Fehlercodes finden Sie in den Auth Reference Docs .
Melden Sie einen Benutzer mit einer E-Mail-Adresse und einem Kennwort an
Die Schritte zum Anmelden eines Benutzers mit einem Passwort ähneln den Schritten zum Erstellen eines neuen Kontos. Gehen Sie auf der Anmeldeseite Ihrer App wie folgt vor:
- Wenn sich ein Benutzer bei Ihrer App anmeldet, übergeben Sie die E-Mail-Adresse und das Kennwort des Benutzers an
signInWithEmailAndPassword
:Werfen Sie einen Blick auf den Abschnitt „Nächste Schritte“ unten, um die angemeldeten Benutzerdetails zu erhalten.Web version 9
import { getAuth, signInWithEmailAndPassword } from "firebase/auth"; const auth = getAuth(); signInWithEmailAndPassword(auth, email, password) .then((userCredential) => { // Signed in const user = userCredential.user; // ... }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; });
Web version 8
firebase.auth().signInWithEmailAndPassword(email, password) .then((userCredential) => { // Signed in var user = userCredential.user; // ... }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; });
Hier können Sie auch Fehler abfangen und behandeln. Eine Liste der Fehlercodes finden Sie in den Auth Reference Docs .
Empfohlen: E-Mail-Aufzählungsschutz aktivieren
Einige Firebase-Authentifizierungsmethoden, die E-Mail-Adressen als Parameter verwenden, lösen spezifische Fehler aus, wenn die E-Mail-Adresse nicht registriert ist, obwohl sie registriert werden muss (z. B. wenn Sie sich mit einer E-Mail-Adresse und einem Passwort anmelden), oder registriert ist, wenn sie nicht verwendet werden muss (z. beim Ändern der E-Mail-Adresse eines Benutzers). Während dies hilfreich sein kann, um Benutzern bestimmte Abhilfemaßnahmen vorzuschlagen, kann es auch von böswilligen Akteuren missbraucht werden, um die von Ihren Benutzern registrierten E-Mail-Adressen zu entdecken.
Um dieses Risiko zu verringern, empfehlen wir Ihnen , den E-Mail-Aufzählungsschutz für Ihr Projekt mit dem Google Cloud-Tool gcloud
zu aktivieren. Beachten Sie, dass die Aktivierung dieser Funktion das Verhalten der Fehlerberichterstattung von Firebase Authentication ändert: Stellen Sie sicher, dass sich Ihre App nicht auf die spezifischeren Fehler verlässt.
Nächste Schritte
Nachdem sich ein Benutzer zum ersten Mal angemeldet hat, wird ein neues Benutzerkonto erstellt und mit den Anmeldeinformationen verknüpft – d. h. dem Benutzernamen und Kennwort, der Telefonnummer oder den Authentifizierungsanbieterinformationen –, mit denen sich der Benutzer angemeldet hat. Dieses neue Konto wird als Teil Ihres Firebase-Projekts gespeichert und kann verwendet werden, um einen Benutzer in jeder App in Ihrem Projekt zu identifizieren, unabhängig davon, wie sich der Benutzer anmeldet.
In Ihren Apps besteht die empfohlene Möglichkeit, den Authentifizierungsstatus Ihres Benutzers zu erfahren, darin, einen Beobachter für das
Auth
festzulegen. Sie können dann die grundlegenden Profilinformationen des Benutzers aus demUser
abrufen. Siehe Benutzer verwalten .In Ihren Sicherheitsregeln für die Firebase-Echtzeitdatenbank und den Cloud-Speicher können Sie die eindeutige Benutzer-ID des angemeldeten Benutzers aus der Variablen
auth
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
:
Web version 9
import { getAuth, signOut } from "firebase/auth"; const auth = getAuth(); signOut(auth).then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });
Web version 8
firebase.auth().signOut().then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });