Sie können Ihren Benutzern die Authentifizierung bei Firebase über ihre Twitter-Konten ermöglichen, indem Sie die Twitter-Authentifizierung in Ihre App integrieren. Sie können die Twitter-Authentifizierung integrieren, indem Sie entweder das Firebase SDK verwenden, um den Anmeldevorgang auszuführen, oder indem Sie den Twitter-OAuth-Ablauf manuell ausführen und das resultierende Zugriffstoken und Geheimnis an Firebase übergeben.
Bevor Sie beginnen
- Fügen Sie Firebase zu Ihrem JavaScript-Projekt hinzu .
- Öffnen Sie in der Firebase-Konsole den Abschnitt „Auth“ .
- Aktivieren Sie auf der Registerkarte Anmeldemethode den Twitter- Anbieter.
- Fügen Sie den API-Schlüssel und das API-Geheimnis von der Entwicklerkonsole dieses Anbieters zur Anbieterkonfiguration hinzu:
- Registrieren Sie Ihre App als Entwickleranwendung auf Twitter und erhalten Sie den OAuth- API-Schlüssel und das API-Geheimnis Ihrer App.
- Stellen Sie sicher, dass Ihr Firebase OAuth-Umleitungs-URI (z. B.
my-app-12345.firebaseapp.com/__/auth/handler
) auf der Einstellungsseite Ihrer App in der Konfiguration Ihrer Twitter-App als Autorisierungs-Callback-URL festgelegt ist.
- Klicken Sie auf Speichern .
Behandeln Sie den Anmeldevorgang mit dem Firebase SDK
Wenn Sie eine Web-App erstellen, besteht die einfachste Möglichkeit zur Authentifizierung Ihrer Benutzer bei Firebase mithilfe ihrer Twitter-Konten darin, den Anmeldevorgang mit dem Firebase JavaScript SDK abzuwickeln. (Wenn Sie einen Benutzer in Node.js oder einer anderen Nicht-Browser-Umgebung authentifizieren möchten, müssen Sie den Anmeldevorgang manuell durchführen.)
Führen Sie die folgenden Schritte aus, um den Anmeldevorgang mit dem Firebase JavaScript SDK abzuwickeln:
- Erstellen Sie eine Instanz des Twitter-Anbieterobjekts:
Web modular API
import { TwitterAuthProvider } from "firebase/auth"; const provider = new TwitterAuthProvider();
Web namespaced API
var provider = new firebase.auth.TwitterAuthProvider();
- Optional : Um den OAuth-Ablauf des Anbieters auf die bevorzugte Sprache des Benutzers zu lokalisieren, ohne die relevanten benutzerdefinierten OAuth-Parameter explizit zu übergeben, aktualisieren Sie den Sprachcode auf der Auth-Instanz, bevor Sie den OAuth-Ablauf starten. Zum Beispiel:
Web modular API
import { getAuth } from "firebase/auth"; const auth = getAuth(); auth.languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // auth.useDeviceLanguage();
Web namespaced API
firebase.auth().languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // firebase.auth().useDeviceLanguage();
- Optional : Geben Sie zusätzliche benutzerdefinierte OAuth-Anbieterparameter an, die Sie mit der OAuth-Anfrage senden möchten. Um einen benutzerdefinierten Parameter hinzuzufügen, rufen Sie
setCustomParameters
für den initialisierten Anbieter mit einem Objekt auf, das den in der Dokumentation des OAuth-Anbieters angegebenen Schlüssel und den entsprechenden Wert enthält. Zum Beispiel:Reservierte erforderliche OAuth-Parameter sind nicht zulässig und werden ignoriert. Weitere Einzelheiten finden Sie in der Referenz zum Authentifizierungsanbieter .Web modular API
provider.setCustomParameters({ 'lang': 'es' });
Web namespaced API
provider.setCustomParameters({ 'lang': 'es' });
- Authentifizieren Sie sich bei Firebase mithilfe des Twitter-Anbieterobjekts. Sie können Ihre Benutzer auffordern, sich mit ihren Twitter-Konten anzumelden, indem Sie entweder ein Popup-Fenster öffnen oder zur Anmeldeseite weiterleiten. Auf Mobilgeräten wird die Weiterleitungsmethode bevorzugt.
- Um sich mit einem Popup-Fenster anzumelden, rufen Sie
signInWithPopup
auf:Beachten Sie außerdem, dass Sie das OAuth-Token des Twitter-Anbieters abrufen können, mit dem Sie mithilfe der Twitter-APIs zusätzliche Daten abrufen können.Web modular API
import { getAuth, signInWithPopup, TwitterAuthProvider } from "firebase/auth"; const auth = getAuth(); signInWithPopup(auth, provider) .then((result) => { // This gives you a the Twitter OAuth 1.0 Access Token and Secret. // You can use these server side with your app's credentials to access the Twitter API. const credential = TwitterAuthProvider.credentialFromResult(result); const token = credential.accessToken; const secret = credential.secret; // The signed-in user info. const user = result.user; // IdP data available using getAdditionalUserInfo(result) // ... }).catch((error) => { // Handle Errors here. const errorCode = error.code; const errorMessage = error.message; // The email of the user's account used. const email = error.customData.email; // The AuthCredential type that was used. const credential = TwitterAuthProvider.credentialFromError(error); // ... });
Web namespaced API
firebase .auth() .signInWithPopup(provider) .then((result) => { /** @type {firebase.auth.OAuthCredential} */ var credential = result.credential; // This gives you a the Twitter OAuth 1.0 Access Token and Secret. // You can use these server side with your app's credentials to access the Twitter API. var token = credential.accessToken; var secret = credential.secret; // The signed-in user info. var user = result.user; // IdP data available in result.additionalUserInfo.profile. // ... }).catch((error) => { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; // The email of the user's account used. var email = error.email; // The firebase.auth.AuthCredential type that was used. var credential = error.credential; // ... });
Hier können Sie auch Fehler erkennen und beheben. Eine Liste der Fehlercodes finden Sie in den Auth-Referenzdokumenten .
- Um sich durch Weiterleitung zur Anmeldeseite anzumelden, rufen Sie
signInWithRedirect
auf: Befolgen Sie die Best Practices bei der Verwendung von „signInWithRedirect“.Anschließend können Sie das OAuth-Token des Twitter-Anbieters auch abrufen, indem Sie beim Laden Ihrer SeiteWeb modular API
import { getAuth, signInWithRedirect } from "firebase/auth"; const auth = getAuth(); signInWithRedirect(auth, provider);
Web namespaced API
firebase.auth().signInWithRedirect(provider);
getRedirectResult
aufrufen:Hier können Sie auch Fehler erkennen und beheben. Eine Liste der Fehlercodes finden Sie in den Auth-Referenzdokumenten .Web modular API
import { getAuth, getRedirectResult, TwitterAuthProvider } from "firebase/auth"; const auth = getAuth(); getRedirectResult(auth) .then((result) => { // This gives you a the Twitter OAuth 1.0 Access Token and Secret. // You can use these server side with your app's credentials to access the Twitter API. const credential = TwitterAuthProvider.credentialFromResult(result); const token = credential.accessToken; const secret = credential.secret; // ... // The signed-in user info. const user = result.user; // IdP data available using getAdditionalUserInfo(result) // ... }).catch((error) => { // Handle Errors here. const errorCode = error.code; const errorMessage = error.message; // The email of the user's account used. const email = error.customData.email; // The AuthCredential type that was used. const credential = TwitterAuthProvider.credentialFromError(error); // ... });
Web namespaced API
firebase.auth() .getRedirectResult() .then((result) => { if (result.credential) { /** @type {firebase.auth.OAuthCredential} */ var credential = result.credential; // This gives you a the Twitter OAuth 1.0 Access Token and Secret. // You can use these server side with your app's credentials to access the Twitter API. var token = credential.accessToken; var secret = credential.secret; // ... } // The signed-in user info. var user = result.user; // IdP data available in result.additionalUserInfo.profile. // ... }).catch((error) => { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; // The email of the user's account used. var email = error.email; // The firebase.auth.AuthCredential type that was used. var credential = error.credential; // ... });
- Um sich mit einem Popup-Fenster anzumelden, rufen Sie
Behandeln Sie den Anmeldevorgang manuell
Sie können sich auch über ein Twitter-Konto bei Firebase authentifizieren, indem Sie den Anmeldevorgang durch Aufrufen der Twitter-OAuth-Endpunkte verwalten:
- Integrieren Sie die Twitter-Authentifizierung in Ihre App, indem Sie der Dokumentation des Entwicklers folgen. Am Ende des Twitter-Anmeldevorgangs erhalten Sie ein OAuth-Zugriffstoken und ein OAuth-Geheimnis.
- Wenn Sie sich bei einer Node.js-Anwendung anmelden müssen, senden Sie das OAuth-Zugriffstoken und das OAuth-Geheimnis an die Node.js-Anwendung.
- Nachdem sich ein Benutzer erfolgreich bei Twitter angemeldet hat, tauschen Sie das OAuth-Zugriffstoken und das OAuth-Geheimnis gegen eine Firebase-Anmeldeinformation aus:
var credential = firebase.auth.TwitterAuthProvider.credential(token, secret);
- Authentifizieren Sie sich bei Firebase mit den Firebase-Anmeldeinformationen:
Web modular API
import { getAuth, signInWithCredential, FacebookAuthProvider } from "firebase/auth"; // Sign in with the credential from the Facebook user. const auth = getAuth(); signInWithCredential(auth, credential) .then((result) => { // Signed in const credential = FacebookAuthProvider.credentialFromResult(result); }) .catch((error) => { // Handle Errors here. const errorCode = error.code; const errorMessage = error.message; // The email of the user's account used. const email = error.customData.email; // The AuthCredential type that was used. const credential = FacebookAuthProvider.credentialFromError(error); // ... });
Web namespaced API
// Sign in with the credential from the Facebook user. firebase.auth().signInWithCredential(credential) .then((result) => { // Signed in var credential = result.credential; // ... }) .catch((error) => { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; // The email of the user's account used. var email = error.email; // The firebase.auth.AuthCredential type that was used. var credential = error.credential; // ... });
Authentifizieren Sie sich mit Firebase in einer Chrome-Erweiterung
Wenn Sie eine Chrome-Erweiterungs-App erstellen, lesen Sie die Anleitung zu Offscreen-Dokumenten .
Nächste Schritte
Nachdem sich ein Benutzer zum ersten Mal angemeldet hat, wird ein neues Benutzerkonto erstellt und mit den Anmeldeinformationen – also dem Benutzernamen und dem Kennwort, der Telefonnummer oder den Informationen zum Authentifizierungsanbieter – verknüpft, mit denen sich der Benutzer angemeldet hat. Dieses neue Konto wird als Teil Ihres Firebase-Projekts gespeichert und kann zur Identifizierung eines Benutzers in jeder App in Ihrem Projekt verwendet werden, unabhängig davon, wie sich der Benutzer anmeldet.
In Ihren Apps können Sie den Authentifizierungsstatus Ihres Benutzers am besten ermitteln, indem Sie einen Beobachter für das
Auth
Objekt festlegen. Anschließend können Sie die grundlegenden Profilinformationen des Benutzers aus demUser
abrufen. Siehe Benutzer verwalten .In Ihren Firebase-Echtzeitdatenbank- und Cloud-Speicher- Sicherheitsregeln können Sie die eindeutige Benutzer-ID des angemeldeten Benutzers aus der
auth
abrufen und damit steuern, auf welche Daten ein Benutzer zugreifen kann.
Sie können Benutzern die Anmeldung bei Ihrer App mit mehreren Authentifizierungsanbietern ermöglichen, indem Sie die Anmeldeinformationen des Authentifizierungsanbieters mit einem vorhandenen Benutzerkonto verknüpfen.
Um einen Benutzer abzumelden, rufen Sie signOut
auf:
Web modular API
import { getAuth, signOut } from "firebase/auth"; const auth = getAuth(); signOut(auth).then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });
Web namespaced API
firebase.auth().signOut().then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });
Sie können Ihren Benutzern die Authentifizierung bei Firebase über ihre Twitter-Konten ermöglichen, indem Sie die Twitter-Authentifizierung in Ihre App integrieren. Sie können die Twitter-Authentifizierung integrieren, indem Sie entweder das Firebase SDK verwenden, um den Anmeldevorgang auszuführen, oder indem Sie den Twitter-OAuth-Ablauf manuell ausführen und das resultierende Zugriffstoken und Geheimnis an Firebase übergeben.
Bevor Sie beginnen
- Fügen Sie Firebase zu Ihrem JavaScript-Projekt hinzu .
- Öffnen Sie in der Firebase-Konsole den Abschnitt „Auth“ .
- Aktivieren Sie auf der Registerkarte Anmeldemethode den Twitter- Anbieter.
- Fügen Sie den API-Schlüssel und das API-Geheimnis von der Entwicklerkonsole dieses Anbieters zur Anbieterkonfiguration hinzu:
- Registrieren Sie Ihre App als Entwickleranwendung auf Twitter und erhalten Sie den OAuth- API-Schlüssel und das API-Geheimnis Ihrer App.
- Stellen Sie sicher, dass Ihr Firebase OAuth-Umleitungs-URI (z. B.
my-app-12345.firebaseapp.com/__/auth/handler
) auf der Einstellungsseite Ihrer App in der Konfiguration Ihrer Twitter-App als Autorisierungs-Callback-URL festgelegt ist.
- Klicken Sie auf Speichern .
Behandeln Sie den Anmeldevorgang mit dem Firebase SDK
Wenn Sie eine Web-App erstellen, besteht die einfachste Möglichkeit zur Authentifizierung Ihrer Benutzer bei Firebase mithilfe ihrer Twitter-Konten darin, den Anmeldevorgang mit dem Firebase JavaScript SDK abzuwickeln. (Wenn Sie einen Benutzer in Node.js oder einer anderen Nicht-Browser-Umgebung authentifizieren möchten, müssen Sie den Anmeldevorgang manuell durchführen.)
Führen Sie die folgenden Schritte aus, um den Anmeldevorgang mit dem Firebase JavaScript SDK abzuwickeln:
- Erstellen Sie eine Instanz des Twitter-Anbieterobjekts:
Web modular API
import { TwitterAuthProvider } from "firebase/auth"; const provider = new TwitterAuthProvider();
Web namespaced API
var provider = new firebase.auth.TwitterAuthProvider();
- Optional : Um den OAuth-Ablauf des Anbieters auf die bevorzugte Sprache des Benutzers zu lokalisieren, ohne die relevanten benutzerdefinierten OAuth-Parameter explizit zu übergeben, aktualisieren Sie den Sprachcode auf der Auth-Instanz, bevor Sie den OAuth-Ablauf starten. Zum Beispiel:
Web modular API
import { getAuth } from "firebase/auth"; const auth = getAuth(); auth.languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // auth.useDeviceLanguage();
Web namespaced API
firebase.auth().languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // firebase.auth().useDeviceLanguage();
- Optional : Geben Sie zusätzliche benutzerdefinierte OAuth-Anbieterparameter an, die Sie mit der OAuth-Anfrage senden möchten. Um einen benutzerdefinierten Parameter hinzuzufügen, rufen Sie
setCustomParameters
für den initialisierten Anbieter mit einem Objekt auf, das den in der Dokumentation des OAuth-Anbieters angegebenen Schlüssel und den entsprechenden Wert enthält. Zum Beispiel:Reservierte erforderliche OAuth-Parameter sind nicht zulässig und werden ignoriert. Weitere Einzelheiten finden Sie in der Referenz zum Authentifizierungsanbieter .Web modular API
provider.setCustomParameters({ 'lang': 'es' });
Web namespaced API
provider.setCustomParameters({ 'lang': 'es' });
- Authentifizieren Sie sich bei Firebase mithilfe des Twitter-Anbieterobjekts. Sie können Ihre Benutzer auffordern, sich mit ihren Twitter-Konten anzumelden, indem Sie entweder ein Popup-Fenster öffnen oder zur Anmeldeseite weiterleiten. Auf Mobilgeräten wird die Weiterleitungsmethode bevorzugt.
- Um sich mit einem Popup-Fenster anzumelden, rufen Sie
signInWithPopup
auf:Beachten Sie außerdem, dass Sie das OAuth-Token des Twitter-Anbieters abrufen können, mit dem Sie mithilfe der Twitter-APIs zusätzliche Daten abrufen können.Web modular API
import { getAuth, signInWithPopup, TwitterAuthProvider } from "firebase/auth"; const auth = getAuth(); signInWithPopup(auth, provider) .then((result) => { // This gives you a the Twitter OAuth 1.0 Access Token and Secret. // You can use these server side with your app's credentials to access the Twitter API. const credential = TwitterAuthProvider.credentialFromResult(result); const token = credential.accessToken; const secret = credential.secret; // The signed-in user info. const user = result.user; // IdP data available using getAdditionalUserInfo(result) // ... }).catch((error) => { // Handle Errors here. const errorCode = error.code; const errorMessage = error.message; // The email of the user's account used. const email = error.customData.email; // The AuthCredential type that was used. const credential = TwitterAuthProvider.credentialFromError(error); // ... });
Web namespaced API
firebase .auth() .signInWithPopup(provider) .then((result) => { /** @type {firebase.auth.OAuthCredential} */ var credential = result.credential; // This gives you a the Twitter OAuth 1.0 Access Token and Secret. // You can use these server side with your app's credentials to access the Twitter API. var token = credential.accessToken; var secret = credential.secret; // The signed-in user info. var user = result.user; // IdP data available in result.additionalUserInfo.profile. // ... }).catch((error) => { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; // The email of the user's account used. var email = error.email; // The firebase.auth.AuthCredential type that was used. var credential = error.credential; // ... });
Hier können Sie auch Fehler erkennen und beheben. Eine Liste der Fehlercodes finden Sie in den Auth-Referenzdokumenten .
- Um sich durch Weiterleitung zur Anmeldeseite anzumelden, rufen Sie
signInWithRedirect
auf: Befolgen Sie die Best Practices bei der Verwendung von „signInWithRedirect“.Anschließend können Sie das OAuth-Token des Twitter-Anbieters auch abrufen, indem Sie beim Laden Ihrer SeiteWeb modular API
import { getAuth, signInWithRedirect } from "firebase/auth"; const auth = getAuth(); signInWithRedirect(auth, provider);
Web namespaced API
firebase.auth().signInWithRedirect(provider);
getRedirectResult
aufrufen:Hier können Sie auch Fehler erkennen und beheben. Eine Liste der Fehlercodes finden Sie in den Auth-Referenzdokumenten .Web modular API
import { getAuth, getRedirectResult, TwitterAuthProvider } from "firebase/auth"; const auth = getAuth(); getRedirectResult(auth) .then((result) => { // This gives you a the Twitter OAuth 1.0 Access Token and Secret. // You can use these server side with your app's credentials to access the Twitter API. const credential = TwitterAuthProvider.credentialFromResult(result); const token = credential.accessToken; const secret = credential.secret; // ... // The signed-in user info. const user = result.user; // IdP data available using getAdditionalUserInfo(result) // ... }).catch((error) => { // Handle Errors here. const errorCode = error.code; const errorMessage = error.message; // The email of the user's account used. const email = error.customData.email; // The AuthCredential type that was used. const credential = TwitterAuthProvider.credentialFromError(error); // ... });
Web namespaced API
firebase.auth() .getRedirectResult() .then((result) => { if (result.credential) { /** @type {firebase.auth.OAuthCredential} */ var credential = result.credential; // This gives you a the Twitter OAuth 1.0 Access Token and Secret. // You can use these server side with your app's credentials to access the Twitter API. var token = credential.accessToken; var secret = credential.secret; // ... } // The signed-in user info. var user = result.user; // IdP data available in result.additionalUserInfo.profile. // ... }).catch((error) => { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; // The email of the user's account used. var email = error.email; // The firebase.auth.AuthCredential type that was used. var credential = error.credential; // ... });
- Um sich mit einem Popup-Fenster anzumelden, rufen Sie
Behandeln Sie den Anmeldevorgang manuell
Sie können sich auch über ein Twitter-Konto bei Firebase authentifizieren, indem Sie den Anmeldevorgang durch Aufrufen der Twitter-OAuth-Endpunkte verwalten:
- Integrieren Sie die Twitter-Authentifizierung in Ihre App, indem Sie der Dokumentation des Entwicklers folgen. Am Ende des Twitter-Anmeldevorgangs erhalten Sie ein OAuth-Zugriffstoken und ein OAuth-Geheimnis.
- Wenn Sie sich bei einer Node.js-Anwendung anmelden müssen, senden Sie das OAuth-Zugriffstoken und das OAuth-Geheimnis an die Node.js-Anwendung.
- Nachdem sich ein Benutzer erfolgreich bei Twitter angemeldet hat, tauschen Sie das OAuth-Zugriffstoken und das OAuth-Geheimnis gegen eine Firebase-Anmeldeinformation aus:
var credential = firebase.auth.TwitterAuthProvider.credential(token, secret);
- Authentifizieren Sie sich bei Firebase mit den Firebase-Anmeldeinformationen:
Web modular API
import { getAuth, signInWithCredential, FacebookAuthProvider } from "firebase/auth"; // Sign in with the credential from the Facebook user. const auth = getAuth(); signInWithCredential(auth, credential) .then((result) => { // Signed in const credential = FacebookAuthProvider.credentialFromResult(result); }) .catch((error) => { // Handle Errors here. const errorCode = error.code; const errorMessage = error.message; // The email of the user's account used. const email = error.customData.email; // The AuthCredential type that was used. const credential = FacebookAuthProvider.credentialFromError(error); // ... });
Web namespaced API
// Sign in with the credential from the Facebook user. firebase.auth().signInWithCredential(credential) .then((result) => { // Signed in var credential = result.credential; // ... }) .catch((error) => { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; // The email of the user's account used. var email = error.email; // The firebase.auth.AuthCredential type that was used. var credential = error.credential; // ... });
Authentifizieren Sie sich mit Firebase in einer Chrome-Erweiterung
Wenn Sie eine Chrome-Erweiterungs-App erstellen, lesen Sie die Anleitung zu Offscreen-Dokumenten .
Nächste Schritte
Nachdem sich ein Benutzer zum ersten Mal angemeldet hat, wird ein neues Benutzerkonto erstellt und mit den Anmeldeinformationen – also dem Benutzernamen und dem Kennwort, der Telefonnummer oder den Informationen zum Authentifizierungsanbieter – verknüpft, mit denen sich der Benutzer angemeldet hat. Dieses neue Konto wird als Teil Ihres Firebase-Projekts gespeichert und kann zur Identifizierung eines Benutzers in jeder App in Ihrem Projekt verwendet werden, unabhängig davon, wie sich der Benutzer anmeldet.
In Ihren Apps können Sie den Authentifizierungsstatus Ihres Benutzers am besten ermitteln, indem Sie einen Beobachter für das
Auth
Objekt festlegen. Anschließend können Sie die grundlegenden Profilinformationen des Benutzers aus demUser
abrufen. Siehe Benutzer verwalten .In Ihren Firebase-Echtzeitdatenbank- und Cloud-Speicher- Sicherheitsregeln können Sie die eindeutige Benutzer-ID des angemeldeten Benutzers aus der
auth
abrufen und damit steuern, auf welche Daten ein Benutzer zugreifen kann.
Sie können Benutzern die Anmeldung bei Ihrer App mit mehreren Authentifizierungsanbietern ermöglichen, indem Sie die Anmeldeinformationen des Authentifizierungsanbieters mit einem vorhandenen Benutzerkonto verknüpfen.
Um einen Benutzer abzumelden, rufen Sie signOut
auf:
Web modular API
import { getAuth, signOut } from "firebase/auth"; const auth = getAuth(); signOut(auth).then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });
Web namespaced API
firebase.auth().signOut().then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });
Sie können Ihren Benutzern die Authentifizierung bei Firebase über ihre Twitter-Konten ermöglichen, indem Sie die Twitter-Authentifizierung in Ihre App integrieren. Sie können die Twitter-Authentifizierung integrieren, indem Sie entweder das Firebase SDK verwenden, um den Anmeldevorgang auszuführen, oder indem Sie den Twitter-OAuth-Ablauf manuell ausführen und das resultierende Zugriffstoken und Geheimnis an Firebase übergeben.
Bevor Sie beginnen
- Fügen Sie Firebase zu Ihrem JavaScript-Projekt hinzu .
- Öffnen Sie in der Firebase-Konsole den Abschnitt „Auth“ .
- Aktivieren Sie auf der Registerkarte Anmeldemethode den Twitter- Anbieter.
- Fügen Sie den API-Schlüssel und das API-Geheimnis von der Entwicklerkonsole dieses Anbieters zur Anbieterkonfiguration hinzu:
- Registrieren Sie Ihre App als Entwickleranwendung auf Twitter und erhalten Sie den OAuth- API-Schlüssel und das API-Geheimnis Ihrer App.
- Stellen Sie sicher, dass Ihr Firebase OAuth-Umleitungs-URI (z. B.
my-app-12345.firebaseapp.com/__/auth/handler
) auf der Einstellungsseite Ihrer App in der Konfiguration Ihrer Twitter-App als Autorisierungs-Callback-URL festgelegt ist.
- Klicken Sie auf Speichern .
Behandeln Sie den Anmeldevorgang mit dem Firebase SDK
Wenn Sie eine Web-App erstellen, besteht die einfachste Möglichkeit zur Authentifizierung Ihrer Benutzer bei Firebase mithilfe ihrer Twitter-Konten darin, den Anmeldevorgang mit dem Firebase JavaScript SDK abzuwickeln. (Wenn Sie einen Benutzer in Node.js oder einer anderen Nicht-Browser-Umgebung authentifizieren möchten, müssen Sie den Anmeldevorgang manuell durchführen.)
Führen Sie die folgenden Schritte aus, um den Anmeldevorgang mit dem Firebase JavaScript SDK abzuwickeln:
- Erstellen Sie eine Instanz des Twitter-Anbieterobjekts:
Web modular API
import { TwitterAuthProvider } from "firebase/auth"; const provider = new TwitterAuthProvider();
Web namespaced API
var provider = new firebase.auth.TwitterAuthProvider();
- Optional : Um den OAuth-Ablauf des Anbieters auf die bevorzugte Sprache des Benutzers zu lokalisieren, ohne die relevanten benutzerdefinierten OAuth-Parameter explizit zu übergeben, aktualisieren Sie den Sprachcode auf der Auth-Instanz, bevor Sie den OAuth-Ablauf starten. Zum Beispiel:
Web modular API
import { getAuth } from "firebase/auth"; const auth = getAuth(); auth.languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // auth.useDeviceLanguage();
Web namespaced API
firebase.auth().languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // firebase.auth().useDeviceLanguage();
- Optional : Geben Sie zusätzliche benutzerdefinierte OAuth-Anbieterparameter an, die Sie mit der OAuth-Anfrage senden möchten. Um einen benutzerdefinierten Parameter hinzuzufügen, rufen Sie
setCustomParameters
für den initialisierten Anbieter mit einem Objekt auf, das den in der Dokumentation des OAuth-Anbieters angegebenen Schlüssel und den entsprechenden Wert enthält. Zum Beispiel:Reservierte erforderliche OAuth-Parameter sind nicht zulässig und werden ignoriert. Weitere Einzelheiten finden Sie in der Referenz zum Authentifizierungsanbieter .Web modular API
provider.setCustomParameters({ 'lang': 'es' });
Web namespaced API
provider.setCustomParameters({ 'lang': 'es' });
- Authentifizieren Sie sich bei Firebase mithilfe des Twitter-Anbieterobjekts. Sie können Ihre Benutzer auffordern, sich mit ihren Twitter-Konten anzumelden, indem Sie entweder ein Popup-Fenster öffnen oder zur Anmeldeseite weiterleiten. Auf Mobilgeräten wird die Weiterleitungsmethode bevorzugt.
- Um sich mit einem Popup-Fenster anzumelden, rufen Sie
signInWithPopup
auf:Beachten Sie außerdem, dass Sie das OAuth-Token des Twitter-Anbieters abrufen können, mit dem Sie mithilfe der Twitter-APIs zusätzliche Daten abrufen können.Web modular API
import { getAuth, signInWithPopup, TwitterAuthProvider } from "firebase/auth"; const auth = getAuth(); signInWithPopup(auth, provider) .then((result) => { // This gives you a the Twitter OAuth 1.0 Access Token and Secret. // You can use these server side with your app's credentials to access the Twitter API. const credential = TwitterAuthProvider.credentialFromResult(result); const token = credential.accessToken; const secret = credential.secret; // The signed-in user info. const user = result.user; // IdP data available using getAdditionalUserInfo(result) // ... }).catch((error) => { // Handle Errors here. const errorCode = error.code; const errorMessage = error.message; // The email of the user's account used. const email = error.customData.email; // The AuthCredential type that was used. const credential = TwitterAuthProvider.credentialFromError(error); // ... });
Web namespaced API
firebase .auth() .signInWithPopup(provider) .then((result) => { /** @type {firebase.auth.OAuthCredential} */ var credential = result.credential; // This gives you a the Twitter OAuth 1.0 Access Token and Secret. // You can use these server side with your app's credentials to access the Twitter API. var token = credential.accessToken; var secret = credential.secret; // The signed-in user info. var user = result.user; // IdP data available in result.additionalUserInfo.profile. // ... }).catch((error) => { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; // The email of the user's account used. var email = error.email; // The firebase.auth.AuthCredential type that was used. var credential = error.credential; // ... });
Hier können Sie auch Fehler erkennen und beheben. Eine Liste der Fehlercodes finden Sie in den Auth-Referenzdokumenten .
- Um sich durch Weiterleitung zur Anmeldeseite anzumelden, rufen Sie
signInWithRedirect
auf: Befolgen Sie die Best Practices bei der Verwendung von „signInWithRedirect“.Anschließend können Sie das OAuth-Token des Twitter-Anbieters auch abrufen, indem Sie beim Laden Ihrer SeiteWeb modular API
import { getAuth, signInWithRedirect } from "firebase/auth"; const auth = getAuth(); signInWithRedirect(auth, provider);
Web namespaced API
firebase.auth().signInWithRedirect(provider);
getRedirectResult
aufrufen:Hier können Sie auch Fehler erkennen und beheben. Eine Liste der Fehlercodes finden Sie in den Auth-Referenzdokumenten .Web modular API
import { getAuth, getRedirectResult, TwitterAuthProvider } from "firebase/auth"; const auth = getAuth(); getRedirectResult(auth) .then((result) => { // This gives you a the Twitter OAuth 1.0 Access Token and Secret. // You can use these server side with your app's credentials to access the Twitter API. const credential = TwitterAuthProvider.credentialFromResult(result); const token = credential.accessToken; const secret = credential.secret; // ... // The signed-in user info. const user = result.user; // IdP data available using getAdditionalUserInfo(result) // ... }).catch((error) => { // Handle Errors here. const errorCode = error.code; const errorMessage = error.message; // The email of the user's account used. const email = error.customData.email; // The AuthCredential type that was used. const credential = TwitterAuthProvider.credentialFromError(error); // ... });
Web namespaced API
firebase.auth() .getRedirectResult() .then((result) => { if (result.credential) { /** @type {firebase.auth.OAuthCredential} */ var credential = result.credential; // This gives you a the Twitter OAuth 1.0 Access Token and Secret. // You can use these server side with your app's credentials to access the Twitter API. var token = credential.accessToken; var secret = credential.secret; // ... } // The signed-in user info. var user = result.user; // IdP data available in result.additionalUserInfo.profile. // ... }).catch((error) => { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; // The email of the user's account used. var email = error.email; // The firebase.auth.AuthCredential type that was used. var credential = error.credential; // ... });
- Um sich mit einem Popup-Fenster anzumelden, rufen Sie
Behandeln Sie den Anmeldevorgang manuell
Sie können sich auch über ein Twitter-Konto bei Firebase authentifizieren, indem Sie den Anmeldevorgang durch Aufrufen der Twitter-OAuth-Endpunkte verwalten:
- Integrieren Sie die Twitter-Authentifizierung in Ihre App, indem Sie der Dokumentation des Entwicklers folgen. Am Ende des Twitter-Anmeldevorgangs erhalten Sie ein OAuth-Zugriffstoken und ein OAuth-Geheimnis.
- Wenn Sie sich bei einer Node.js-Anwendung anmelden müssen, senden Sie das OAuth-Zugriffstoken und das OAuth-Geheimnis an die Node.js-Anwendung.
- Nachdem sich ein Benutzer erfolgreich bei Twitter angemeldet hat, tauschen Sie das OAuth-Zugriffstoken und das OAuth-Geheimnis gegen eine Firebase-Anmeldeinformation aus:
var credential = firebase.auth.TwitterAuthProvider.credential(token, secret);
- Authentifizieren Sie sich bei Firebase mit den Firebase-Anmeldeinformationen:
Web modular API
import { getAuth, signInWithCredential, FacebookAuthProvider } from "firebase/auth"; // Sign in with the credential from the Facebook user. const auth = getAuth(); signInWithCredential(auth, credential) .then((result) => { // Signed in const credential = FacebookAuthProvider.credentialFromResult(result); }) .catch((error) => { // Handle Errors here. const errorCode = error.code; const errorMessage = error.message; // The email of the user's account used. const email = error.customData.email; // The AuthCredential type that was used. const credential = FacebookAuthProvider.credentialFromError(error); // ... });
Web namespaced API
// Sign in with the credential from the Facebook user. firebase.auth().signInWithCredential(credential) .then((result) => { // Signed in var credential = result.credential; // ... }) .catch((error) => { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; // The email of the user's account used. var email = error.email; // The firebase.auth.AuthCredential type that was used. var credential = error.credential; // ... });
Authentifizieren Sie sich mit Firebase in einer Chrome-Erweiterung
Wenn Sie eine Chrome-Erweiterungs-App erstellen, lesen Sie die Anleitung zu Offscreen-Dokumenten .
Nächste Schritte
Nachdem sich ein Benutzer zum ersten Mal angemeldet hat, wird ein neues Benutzerkonto erstellt und mit den Anmeldeinformationen – also dem Benutzernamen und dem Kennwort, der Telefonnummer oder den Informationen zum Authentifizierungsanbieter – verknüpft, mit denen sich der Benutzer angemeldet hat. Dieses neue Konto wird als Teil Ihres Firebase-Projekts gespeichert und kann zur Identifizierung eines Benutzers in jeder App in Ihrem Projekt verwendet werden, unabhängig davon, wie sich der Benutzer anmeldet.
In Ihren Apps können Sie den Authentifizierungsstatus Ihres Benutzers am besten ermitteln, indem Sie einen Beobachter für das
Auth
Objekt festlegen. Anschließend können Sie die grundlegenden Profilinformationen des Benutzers aus demUser
abrufen. Siehe Benutzer verwalten .In Ihren Firebase-Echtzeitdatenbank- und Cloud-Speicher- Sicherheitsregeln können Sie die eindeutige Benutzer-ID des angemeldeten Benutzers aus der
auth
abrufen und damit steuern, auf welche Daten ein Benutzer zugreifen kann.
Sie können Benutzern die Anmeldung bei Ihrer App mit mehreren Authentifizierungsanbietern ermöglichen, indem Sie die Anmeldeinformationen des Authentifizierungsanbieters mit einem vorhandenen Benutzerkonto verknüpfen.
Um einen Benutzer abzumelden, rufen Sie signOut
auf:
Web modular API
import { getAuth, signOut } from "firebase/auth"; const auth = getAuth(); signOut(auth).then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });
Web namespaced API
firebase.auth().signOut().then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });