Twitter kimlik doğrulamasını uygulamanıza entegre ederek kullanıcılarınızın Twitter hesaplarını kullanarak Firebase ile kimlik doğrulamalarını sağlayabilirsiniz. Oturum açma akışını yürütmek için Firebase SDK'sını kullanarak veya Twitter OAuth akışını manuel olarak gerçekleştirip elde edilen erişim jetonunu ve gizli bilgiyi Firebase'e ileterek Twitter kimlik doğrulamasını entegre edebilirsiniz.
Başlamadan önce
- Firebase'i JavaScript projenize ekleyin.
- Firebase konsolunda Auth bölümünü açın.
- Oturum açma yöntemi sekmesinde, Twitter sağlayıcısını etkinleştirin.
- Söz konusu sağlayıcının geliştirici konsolundan API anahtarını ve API gizli anahtarını sağlayıcı yapılandırmasına ekleyin:
- Uygulamanızı Twitter'da bir geliştirici uygulaması olarak kaydedin ve uygulamanızın OAuth API anahtarı ile API gizli anahtarını alın.
- Twitter uygulamanızın yapılandırmasında uygulamanızın ayarlar sayfasında Firebase OAuth yönlendirme URI'nizin (ör.
my-app-12345.firebaseapp.com/__/auth/handler
) Yetkilendirme geri çağırma URL'niz olarak ayarlandığından emin olun.
- Kaydet'i tıklayın.
Oturum açma akışını Firebase SDK'sı ile yönetme
Bir web uygulaması oluşturuyorsanız, Twitter hesaplarını kullanarak Firebase ile kullanıcılarınızın kimliklerini doğrulamanın en kolay yolu, oturum açma akışını Firebase JavaScript SDK ile yönetmektir. (Node.js veya tarayıcı dışı başka bir ortamda bir kullanıcının kimliğini doğrulamak istiyorsanız oturum açma akışını manuel olarak yürütmeniz gerekir.)
Oturum açma akışını Firebase JavaScript SDK ile yönetmek için aşağıdaki adımları izleyin:
- Twitter sağlayıcı nesnesinin bir örneğini oluşturun:
Web modüler API
import { TwitterAuthProvider } from "firebase/auth"; const provider = new TwitterAuthProvider();
Web ad alanı API'si
var provider = new firebase.auth.TwitterAuthProvider();
- İsteğe bağlı: Sağlayıcının OAuth akışını, ilgili özel OAuth parametrelerini açıkça iletmeden kullanıcının tercih ettiği dile göre yerelleştirmek için OAuth akışını başlatmadan önce Auth örneğindeki dil kodunu güncelleyin. Örnek:
Web modüler 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 ad alanı API'si
firebase.auth().languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // firebase.auth().useDeviceLanguage();
- İsteğe bağlı: OAuth isteğiyle birlikte göndermek istediğiniz ek özel OAuth sağlayıcı parametrelerini belirtin. Özel parametre eklemek için, başlatılan sağlayıcıda
setCustomParameters
yöntemini, OAuth sağlayıcı belgelerinde belirtildiği gibi anahtarı ve ilgili değeri içeren bir nesne ile çağırın. Örnek:Web modüler API
provider.setCustomParameters({ 'lang': 'es' });
Web ad alanı API'si
provider.setCustomParameters({ 'lang': 'es' });
- Twitter sağlayıcı nesnesini kullanarak Firebase ile kimlik doğrulayın. Kullanıcılarınızdan bir pop-up pencere açarak veya oturum açma sayfasına yönlendirerek Twitter hesaplarıyla oturum açmalarını isteyebilirsiniz. Mobil cihazlarda yönlendirme yöntemi tercih edilir.
- Pop-up pencereyle oturum açmak için
signInWithPopup
numaralı telefonu arayın:Web modüler 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 ad alanı API'si
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; // ... });
Ayrıca, hataları yakalayıp işleyebilirsiniz. Hata kodlarının listesi için Kimlik Doğrulama Referans Belgeleri'ne göz atın.
- Oturum açma sayfasına yönlendirerek oturum açmak için
signInWithRedirect
numaralı telefonu arayın: "signInWithRedirect" özelliğini kullanırken en iyi uygulamaları izleyin.Web modüler API
import { getAuth, signInWithRedirect } from "firebase/auth"; const auth = getAuth(); signInWithRedirect(auth, provider);
Web ad alanı API'si
firebase.auth().signInWithRedirect(provider);
getRedirectResult
yöntemini çağırarak Twitter sağlayıcının OAuth jetonunu da alabilirsiniz:Web modüler 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 ad alanı API'si
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; // ... });
- Pop-up pencereyle oturum açmak için
Oturum açma akışını manuel olarak yönetme
Ayrıca bir Twitter hesabı kullanarak Firebase ile kimlik doğrulamak için Twitter OAuth uç noktalarını çağırarak oturum açma akışını yönetebilirsiniz:
- Geliştirici belgelerindeki adımları uygulayarak Twitter kimlik doğrulamasını uygulamanıza entegre edin. Twitter oturum açma akışının sonunda bir OAuth erişim jetonu ve bir OAuth gizli anahtarı alırsınız.
- Bir Node.js uygulamasında oturum açmanız gerekiyorsa OAuth erişim jetonunu ve OAuth gizli anahtarını Node.js uygulamasına gönderin.
- Kullanıcı Twitter ile başarıyla oturum açtıktan sonra OAuth erişim jetonunu ve OAuth gizli anahtarını Firebase kimlik bilgisi ile değiştirin:
var credential = firebase.auth.TwitterAuthProvider.credential(token, secret);
- Firebase kimlik bilgilerini kullanarak Firebase ile kimlik doğrulayın:
Web modüler 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 ad alanı API'si
// 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; // ... });
Chrome uzantılarında Firebase ile kimlik doğrulama
Bir Chrome uzantı uygulaması oluşturuyorsanız Dokümanlar Dışı Dokümanlar rehberine bakın.
Sonraki adımlar
Bir kullanıcı ilk kez oturum açtıktan sonra yeni bir kullanıcı hesabı oluşturulur ve kullanıcının oturum açtığı kimlik bilgilerine (kullanıcı adı ve şifre, telefon numarası veya kimlik doğrulama sağlayıcı bilgisi) bağlanır. Bu yeni hesap Firebase projenizin bir parçası olarak depolanır ve kullanıcının nasıl oturum açtığından bağımsız olarak projenizdeki her uygulamada kullanıcıyı tanımlamak için kullanılabilir.
-
Uygulamalarınızda, kullanıcınızın kimlik doğrulama durumunu öğrenmek için önerilen yol,
Auth
nesnesinde bir gözlemci ayarlamaktır. Daha sonra, kullanıcının temel profil bilgileriniUser
nesnesinden alabilirsiniz. Kullanıcıları Yönetme sayfasına göz atın. Firebase Realtime Database ve Cloud Storage Güvenlik Kurallarınızda, oturum açan kullanıcının benzersiz kullanıcı kimliğini
auth
değişkeninden alabilir ve kullanıcının hangi verilere erişebileceğini kontrol etmek için kullanabilirsiniz.
Kimlik doğrulama sağlayıcı kimlik bilgilerini mevcut bir kullanıcı hesabına bağlayarak kullanıcıların, birden fazla kimlik doğrulama sağlayıcı kullanarak uygulamanızda oturum açmasına izin verebilirsiniz.
Bir kullanıcının oturumunu kapatmak için
signOut
numaralı telefonu arayın:
Web modüler API
import { getAuth, signOut } from "firebase/auth"; const auth = getAuth(); signOut(auth).then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });
Web ad alanı API'si
firebase.auth().signOut().then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });