Mit Firebase in JavaScript mithilfe eines benutzerdefinierten Authentifizierungssystems authentifizieren
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Sie können Firebase Authentication in ein benutzerdefiniertes Authentifizierungssystem einbinden, indem Sie Ihren Authentifizierungsserver so ändern, dass benutzerdefinierte signierte Tokens generiert werden, wenn sich ein Nutzer erfolgreich anmeldet. Ihre App empfängt dieses Token und verwendet es, um sich bei Firebase zu authentifizieren.
Hinweis
- Fügen Sie Ihrem JavaScript-Projekt Firebase hinzu.
- Serverschlüssel für Ihr Projekt abrufen:
- Rufen Sie in den Einstellungen Ihres Projekts die Seite Dienstkonten auf.
- Klicken Sie auf der Seite Dienstkonten unten im Abschnitt Firebase Admin SDK auf Neuen privaten Schlüssel generieren.
- Das öffentliche/private Schlüsselpaar des neuen Dienstkontos wird automatisch auf Ihrem Computer gespeichert. Kopieren Sie diese Datei auf Ihren Authentifizierungsserver.
Mit Firebase authentifizieren
- Wenn sich Nutzer in Ihrer App anmelden, werden ihre Anmeldedaten (z. B. Nutzername und Passwort) an Ihren Authentifizierungsserver gesendet. Ihr Server prüft die Anmeldedaten und gibt ein benutzerdefiniertes Token zurück, wenn sie gültig sind.
- Nachdem du das benutzerdefinierte Token von deinem Authentifizierungsserver erhalten hast, gib es an
signInWithCustomToken
weiter, um den Nutzer anzumelden:
Web
import { getAuth, signInWithCustomToken } from "firebase/auth";
const auth = getAuth();
signInWithCustomToken(auth, token)
.then((userCredential) => {
// Signed in
const user = userCredential.user;
// ...
})
.catch((error) => {
const errorCode = error.code;
const errorMessage = error.message;
// ...
});
Web
firebase.auth().signInWithCustomToken(token)
.then((userCredential) => {
// Signed in
var user = userCredential.user;
// ...
})
.catch((error) => {
var errorCode = error.code;
var errorMessage = error.message;
// ...
});
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. Dieses neue Konto wird als Teil Ihres Firebase-Projekts gespeichert und kann verwendet werden, um einen Nutzer in allen Apps in Ihrem Projekt zu identifizieren, unabhängig davon, wie er sich anmeldet.
-
In Ihren Apps sollten Sie den Authentifizierungsstatus des Nutzers am besten über einen Beobachter für das Auth
-Objekt ermitteln. Die grundlegenden Profilinformationen des Nutzers können Sie dann aus dem User
-Objekt abrufen. Weitere Informationen finden Sie unter Nutzer verwalten.
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 über mehrere Authentifizierungsanbieter in Ihrer App anzumelden, indem Sie die Anmeldedaten des Authentifizierungsanbieters mit einem vorhandenen Nutzerkonto verknüpfen.
Wenn Sie einen Nutzer abmelden möchten, rufen Sie
signOut
auf:
Web
import { getAuth, signOut } from "firebase/auth";
const auth = getAuth();
signOut(auth).then(() => {
// Sign-out successful.
}).catch((error) => {
// An error happened.
});
Web
firebase.auth().signOut().then(() => {
// Sign-out successful.
}).catch((error) => {
// An error happened.
});
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-08-08 (UTC).
[null,null,["Zuletzt aktualisiert: 2025-08-08 (UTC)."],[],[],null,["You can integrate Firebase Authentication with a custom authentication system by\nmodifying your authentication server to produce custom signed tokens when a user\nsuccessfully signs in. Your app receives this token and uses it to authenticate\nwith Firebase.\n\nBefore you begin\n\n1. [Add Firebase to your JavaScript project](/docs/web/setup).\n2. Get your project's server keys:\n 1. Go to the [Service Accounts](https://console.firebase.google.com/project/_/settings/serviceaccounts/adminsdk) page in your project's settings.\n 2. Click *Generate New Private Key* at the bottom of the *Firebase Admin SDK* section of the *Service Accounts* page.\n 3. The new service account's public/private key pair is automatically saved on your computer. Copy this file to your authentication server.\n\nAuthenticate with Firebase\n\n1. When users sign in to your app, send their sign-in credentials (for example, their username and password) to your authentication server. Your server checks the credentials and returns a [custom\n token](/docs/auth/admin/create-custom-tokens) if they are valid.\n2. After you receive the custom token from your authentication server, pass it to `signInWithCustomToken` to sign in the user: \n\n Web \n\n ```javascript\n import { getAuth, signInWithCustomToken } from \"firebase/auth\";\n\n const auth = getAuth();\n signInWithCustomToken(auth, token)\n .then((userCredential) =\u003e {\n // Signed in\n const user = userCredential.user;\n // ...\n })\n .catch((error) =\u003e {\n const errorCode = error.code;\n const errorMessage = error.message;\n // ...\n });https://github.com/firebase/snippets-web/blob/467eaa165dcbd9b3ab15711e76fa52237ba37f8b/snippets/auth-next/custom/auth_sign_in_custom.js#L8-L21\n ```\n\n Web \n\n ```javascript\n firebase.auth().signInWithCustomToken(token)\n .then((userCredential) =\u003e {\n // Signed in\n var user = userCredential.user;\n // ...\n })\n .catch((error) =\u003e {\n var errorCode = error.code;\n var errorMessage = error.message;\n // ...\n });https://github.com/firebase/snippets-web/blob/467eaa165dcbd9b3ab15711e76fa52237ba37f8b/auth/custom.js#L10-L20\n ```\n\nNext steps\n\nAfter a user signs in for the first time, a new user account is created and\nlinked to the credentials---that is, the user name and password, phone\nnumber, or auth provider information---the user signed in with. This new\naccount is stored as part of your Firebase project, and can be used to identify\na user across every app in your project, regardless of how the user signs in.\n\n- In your apps, the recommended way to know the auth status of your user is to\n set an observer on the `Auth` object. You can then get the user's\n basic profile information from the `User` object. See\n [Manage Users](/docs/auth/web/manage-users).\n\n- In your Firebase Realtime Database and Cloud Storage\n [Security Rules](/docs/database/security/user-security), you can\n get the signed-in user's unique user ID from the `auth` variable,\n and use it to control what data a user can access.\n\nYou can allow users to sign in to your app using multiple authentication\nproviders by [linking auth provider credentials to an\nexisting user account.](/docs/auth/web/account-linking)\n\nTo sign out a user, call [`signOut`](/docs/reference/js/auth#signout): \n\nWeb \n\n```javascript\nimport { getAuth, signOut } from \"firebase/auth\";\n\nconst auth = getAuth();\nsignOut(auth).then(() =\u003e {\n // Sign-out successful.\n}).catch((error) =\u003e {\n // An error happened.\n});https://github.com/firebase/snippets-web/blob/467eaa165dcbd9b3ab15711e76fa52237ba37f8b/snippets/auth-next/index/auth_sign_out.js#L8-L15\n```\n\nWeb \n\n```javascript\nfirebase.auth().signOut().then(() =\u003e {\n // Sign-out successful.\n}).catch((error) =\u003e {\n // An error happened.\n});https://github.com/firebase/snippets-web/blob/467eaa165dcbd9b3ab15711e76fa52237ba37f8b/auth/index.js#L33-L37\n```"]]