Możesz zezwolić użytkownikom na uwierzytelnianie w Firebase za pomocą ich kont na Twitterze przez integrację uwierzytelniania Twittera ze swoją aplikacją. Możesz zintegrować Twittera możesz przeprowadzić logowanie za pomocą pakietu SDK Firebase. lub ręcznie wykonując przepływ OAuth na Twitterze i przekazać wynikowy kod token dostępu i obiekt tajny dla Firebase.
Zanim zaczniesz
- Dodaj Firebase do projektu JavaScript.
- W konsoli Firebase otwórz sekcję Uwierzytelnianie.
- Na karcie Metoda logowania włącz dostawcę Twittera.
- Dodaj klucz interfejsu API i tajny klucz interfejsu API z konsoli programisty tego dostawcy do
konfiguracja dostawcy:
- Rejestrowanie aplikacji jako aplikację programistyczną na Twitterze i uzyskaj klucz interfejsu API swojej aplikacji OAuth. i Tajny klucz interfejsu API.
- Sprawdź, czy Twój identyfikator URI przekierowania OAuth Firebase (np.
my-app-12345.firebaseapp.com/__/auth/handler
) jest ustawiony jako URL wywołania zwrotnego autoryzacji na stronie ustawień aplikacji Konfiguracja aplikacji Twittera.
- Kliknij Zapisz.
Zarejestruj się za pomocą pakietu SDK Firebase
Jeśli tworzysz aplikację internetową, najprostszy sposób uwierzytelniania użytkowników z Firebase za pomocą kont na Twitterze. pakiet SDK Firebase JavaScript. (Jeśli chcesz uwierzytelnić użytkownika w Node.js lub w innym środowisku, które nie jest przeglądarką, musisz samodzielnie przeprowadzić logowanie).
Aby zalogować się za pomocą pakietu SDK Firebase JavaScript, postępuj zgodnie z tymi wskazówkami kroki:
- Utwórz instancję obiektu dostawcy Twittera:
Web
import { TwitterAuthProvider } from "firebase/auth"; const provider = new TwitterAuthProvider();
Web
var provider = new firebase.auth.TwitterAuthProvider();
- Opcjonalnie: aby zlokalizować przepływ OAuth dostawcy na preferowany przez użytkownika
bez jawnego przekazywania odpowiednich niestandardowych parametrów OAuth, zaktualizuj język
w instancji Auth przed rozpoczęciem procesu OAuth. Przykład:
Web
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
firebase.auth().languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // firebase.auth().useDeviceLanguage();
- Opcjonalnie: określ dodatkowe niestandardowe parametry dostawcy OAuth.
które chcesz wysyłać z żądaniem OAuth. Aby dodać parametr niestandardowy, wywołaj
setCustomParameters
u zainicjowanego dostawcy z obiektem zawierającym klucz zgodnie z dokumentacją dostawcy OAuth i odpowiednią wartością. Przykład:Web
provider.setCustomParameters({ 'lang': 'es' });
Web
provider.setCustomParameters({ 'lang': 'es' });
- Uwierzytelnij się w Firebase za pomocą obiektu dostawcy Twittera. Dostępne opcje
poproś użytkowników o zalogowanie się na swoje konta na Twitterze albo przez otwarcie
pojawi się wyskakujące okienko lub przekierujemy Cię na stronę logowania. Metoda przekierowania to
na urządzeniach mobilnych.
- Aby zalogować się za pomocą wyskakującego okienka, zadzwoń pod numer
signInWithPopup
:Web
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
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; // ... });
Możesz w nim też wykrywać i poprawiać błędy. Listę kodów błędów znajdziesz w dokumentacji referencyjnej uwierzytelniania.
- Aby zalogować się, przekierowując na stronę logowania, zadzwoń pod numer
signInWithRedirect
: Podczas korzystania z metody „signInWithRedirect” postępuj zgodnie ze sprawdzonymi metodami.Web
import { getAuth, signInWithRedirect } from "firebase/auth"; const auth = getAuth(); signInWithRedirect(auth, provider);
Web
firebase.auth().signInWithRedirect(provider);
getRedirectResult
po załadowaniu strony:Web
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
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; // ... });
- Aby zalogować się za pomocą wyskakującego okienka, zadzwoń pod numer
Zarejestruj się ręcznie
Możesz też uwierzytelnić się w Firebase za pomocą konta na Twitterze, obsługując przez wywołanie punktów końcowych OAuth Twittera:
- Zintegruj uwierzytelnianie przez Twittera ze swoją aplikacją, postępując zgodnie z zapoznaj się z dokumentacją dla deweloperów. Na koniec logowania do Twittera otrzyma token dostępu OAuth i tajny klucz OAuth.
- Jeśli musisz zalogować się w aplikacji Node.js, wyślij prośbę o dostęp OAuth i tajny klucz OAuth dla aplikacji Node.js.
- Gdy użytkownik zaloguje się przez Twittera, wymieniaj się dostępem OAuth
token i tajny klucz OAuth dla danych logowania Firebase:
var credential = firebase.auth.TwitterAuthProvider.credential(token, secret);
- Uwierzytelnij w Firebase za pomocą danych logowania Firebase:
Web
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
// 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; // ... });
Uwierzytelnianie za pomocą Firebase w rozszerzeniu do Chrome
Jeśli tworzysz aplikację rozszerzenia do Chrome, zapoznaj się z Przewodnik po dokumentach poza ekranem
Dalsze kroki
Gdy użytkownik zaloguje się po raz pierwszy, tworzone jest nowe konto użytkownika. powiązane z danymi logowania, czyli z nazwą użytkownika, hasłem i numerem telefonu, numer telefonu lub informacje o dostawcy uwierzytelniania – użytkownik zalogowany. Ten nowy jest przechowywane w ramach projektu Firebase i może służyć do identyfikowania użytkownika w każdej aplikacji w projekcie, niezależnie od tego, jak się loguje.
-
Aby poznać stan uwierzytelniania użytkownika w swoich aplikacjach, ustaw obserwatora na obiekcie
Auth
. Dzięki temu możesz uzyskać dane użytkownika podstawowych informacji o profilu z obiektuUser
. Zobacz Zarządzanie użytkownikami Na liście Firebase Realtime Database i Cloud Storage regułami zabezpieczeń, pobierz ze zmiennej
auth
unikalny identyfikator zalogowanego użytkownika, i używać ich do kontrolowania, do jakich danych użytkownik ma dostęp.
Możesz zezwolić użytkownikom na logowanie się w aplikacji przy użyciu wielokrotnego uwierzytelniania. dostawców, łącząc dane logowania dostawcy uwierzytelniania z istniejącego konta użytkownika.
Aby wylogować użytkownika, wywołaj
signOut
:
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. });