Twitter kimlik doğrulamasını uygulamanıza entegre ederek kullanıcılarınızın Twitter hesaplarını kullanarak Firebase'de kimlik doğrulaması yapmasına izin verebilirsiniz. Twitter kimlik doğrulamasını, oturum açma akışını gerçekleştirmek için Firebase SDK'sını kullanarak veya Twitter OAuth akışını manuel olarak gerçekleştirip sonuçtaki erişim jetonunu ve gizli diziyi Firebase'e ileterek entegre edebilirsiniz.
Başlamadan önce
- Firebase'i JavaScript projenize ekleyin.
- Firebase konsolunda Güvenlik > Kimlik doğrulama'ya gidin.
- Oturum açma yöntemi sekmesinde, Twitter ile oturum açma sağlayıcısını etkinleştirin.
-
İlgili sağlayıcının geliştirici konsolundaki API anahtarını ve API gizli anahtarını sağlayıcı yapılandırmasına ekleyin:
- Uygulamanızı Twitter'da geliştirici uygulaması olarak kaydedin ve uygulamanızın OAuth API anahtarını ve API gizli anahtarını alın.
-
Firebase OAuth yönlendirme URI'nizin (örneğin,
my-app-12345.firebaseapp.com/__/auth/handler) Twitter uygulamanızın yapılandırmasındaki uygulama ayarları sayfasında Yetkilendirme geri çağırma URL'si olarak ayarlandığından emin olun.
- Kaydet'i tıklayın.
Oturum açma akışını Firebase SDK ile işleme
Web uygulaması geliştiriyorsanız kullanıcılarınızın kimliklerini Twitter hesaplarını kullanarak Firebase ile 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 kullanıcı kimliğini doğrulamak istiyorsanız oturum açma akışını manuel olarak yönetmeniz gerekir.)
Firebase JavaScript SDK ile oturum açma akışını işlemek için aşağıdaki adımları uygulayın:
- Twitter sağlayıcı nesnesinin bir örneğini oluşturun:
Web
import { TwitterAuthProvider } from "firebase/auth"; const provider = new TwitterAuthProvider();
Web
var provider = new firebase.auth.TwitterAuthProvider();
- İsteğe bağlı: İlgili özel OAuth parametrelerini açıkça iletmeden sağlayıcının OAuth akışını kullanıcının tercih ettiği dile yerelleştirmek için OAuth akışını başlatmadan önce Auth örneğindeki dil kodunu güncelleyin. Örneğin:
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();
- İsteğe bağlı: OAuth isteğiyle göndermek istediğiniz ek özel OAuth sağlayıcı parametrelerini belirtin. Özel parametre eklemek için, OAuth sağlayıcı belgelerinde belirtildiği şekilde anahtarı ve karşılık gelen değeri içeren bir nesneyle başlatılan sağlayıcıda
setCustomParametersişlevini çağırın. Örneğin:Ayrılmış gerekli OAuth parametrelerine izin verilmez ve bu parametreler yoksayılır. Daha fazla bilgi için kimlik doğrulama sağlayıcı referansına bakın.Web
provider.setCustomParameters({ 'lang': 'es' });
Web
provider.setCustomParameters({ 'lang': 'es' });
- Twitter sağlayıcı nesnesini kullanarak Firebase ile kimlik doğrulayın. Kullanıcılarınızdan, 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
signInWithPopupişlevini çağırın:Ayrıca, Twitter API'leri kullanılarak ek verileri getirmek için kullanılabilecek Twitter sağlayıcısının OAuth jetonunu da alabileceğinizi unutmayın.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; // ... });
Hataları yakalayıp işleyebileceğiniz yer de burasıdır. Hata kodlarının listesi için Auth Reference Docs'a göz atın.
- Oturum açma sayfasına yönlendirerek oturum açmak için
signInWithRedirectçağrısı yapın: `signInWithRedirect` kullanırken en iyi uygulamalara uyun.Ardından, sayfanız yüklendiğindeWeb
import { getAuth, signInWithRedirect } from "firebase/auth"; const auth = getAuth(); signInWithRedirect(auth, provider);
Web
firebase.auth().signInWithRedirect(provider);
getRedirectResultişlevini çağırarak Twitter sağlayıcısının OAuth jetonunu da alabilirsiniz:Hataları yakalayıp işleyebileceğiniz yer de burasıdır. Hata kodlarının listesi için Auth Reference Docs'a göz atın.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; // ... });
- Pop-up pencereyle oturum açmak için
Oturum açma akışını manuel olarak işleme
Twitter OAuth uç noktalarını çağırarak oturum açma akışını işleyip Twitter hesabı kullanarak Firebase'de kimlik doğrulama da yapabilirsiniz:
- Geliştirici dokümanlarını inceleyerek 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 sırrını Node.js uygulamasına gönderin.
- Kullanıcı Twitter ile başarılı bir şekilde oturum açtıktan sonra OAuth erişim jetonunu ve OAuth sırrını Firebase yeterlilik belgesiyle değiştirin:
var credential = firebase.auth.TwitterAuthProvider.credential(token, secret);
- Firebase kimlik bilgisiyle Firebase'de kimlik doğrulama:
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; // ... });
Chrome uzantısında Firebase ile kimlik doğrulama
Chrome uzantısı uygulaması geliştiriyorsanız Offscreen Documents 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ı bilgileri) bağlanır. Bu yeni hesap, Firebase projenizin bir parçası olarak depolanır ve kullanıcının nasıl oturum açtığına bakılmaksızın projenizdeki her uygulamada kullanıcıyı tanımlamak için kullanılabilir.
-
Uygulamalarınızda, kullanıcınızın kimlik doğrulama durumunu öğrenmenin önerilen yolu,
Authnesnesinde bir gözlemci ayarlamaktır. Ardından,Usernesnesinden kullanıcının temel profil bilgilerini alabilirsiniz. Kullanıcıları yönetme başlıklı makaleyi inceleyin. Firebase Realtime Database ve Cloud Storage Güvenlik Kurallarınızda, oturum açmış kullanıcının benzersiz kullanıcı kimliğini
authdeğişkeninden alabilir ve kullanıcının hangi verilere erişebileceğini kontrol etmek için bu kimliği kullanabilirsiniz.
Kimlik doğrulama sağlayıcı kimlik bilgilerini mevcut bir kullanıcı hesabına bağlayarak kullanıcıların uygulamanızda birden fazla kimlik doğrulama sağlayıcı kullanarak oturum açmasına izin verebilirsiniz.
Bir kullanıcının oturumunu kapatmak için
signOut numaralı telefonu arayın:
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. });