आप अपने ऐप में ट्विटर प्रमाणीकरण को एकीकृत करके अपने उपयोगकर्ताओं को उनके ट्विटर खातों का उपयोग करके फायरबेस से प्रमाणित करने दे सकते हैं। आप साइन-इन प्रवाह को पूरा करने के लिए फायरबेस एसडीके का उपयोग करके या ट्विटर OAuth प्रवाह को मैन्युअल रूप से चलाकर और परिणामी एक्सेस टोकन और सीक्रेट को फायरबेस में पास करके ट्विटर प्रमाणीकरण को एकीकृत कर सकते हैं।
शुरू करने से पहले
- अपने जावास्क्रिप्ट प्रोजेक्ट में फायरबेस जोड़ें ।
- फायरबेस कंसोल में, ऑथ सेक्शन खोलें।
- साइन इन विधि टैब पर, ट्विटर प्रदाता को सक्षम करें।
- प्रदाता कॉन्फ़िगरेशन में उस प्रदाता के डेवलपर कंसोल से एपीआई कुंजी और एपीआई रहस्य जोड़ें:
- अपने ऐप को ट्विटर पर एक डेवलपर एप्लिकेशन के रूप में पंजीकृत करें और अपने ऐप की OAuth API कुंजी और API रहस्य प्राप्त करें।
- सुनिश्चित करें कि आपका फायरबेस OAuth रीडायरेक्ट URI (उदाहरण के लिए
my-app-12345.firebaseapp.com/__/auth/handler
) आपके ट्विटर ऐप के कॉन्फ़िगरेशन पर आपके ऐप के सेटिंग पेज में आपके प्राधिकरण कॉलबैक URL के रूप में सेट है।
- सहेजें पर क्लिक करें.
फायरबेस एसडीके के साथ साइन-इन प्रवाह को संभालें
यदि आप एक वेब ऐप बना रहे हैं, तो अपने उपयोगकर्ताओं को उनके ट्विटर खातों का उपयोग करके फायरबेस के साथ प्रमाणित करने का सबसे आसान तरीका फायरबेस जावास्क्रिप्ट एसडीके के साथ साइन-इन प्रवाह को संभालना है। (यदि आप Node.js या अन्य गैर-ब्राउज़र वातावरण में किसी उपयोगकर्ता को प्रमाणित करना चाहते हैं, तो आपको साइन-इन प्रवाह को मैन्युअल रूप से संभालना होगा।)
फायरबेस जावास्क्रिप्ट एसडीके के साथ साइन-इन प्रवाह को संभालने के लिए, इन चरणों का पालन करें:
- ट्विटर प्रदाता ऑब्जेक्ट का एक उदाहरण बनाएं:
Web modular API
import { TwitterAuthProvider } from "firebase/auth"; const provider = new TwitterAuthProvider();
Web namespaced API
var provider = new firebase.auth.TwitterAuthProvider();
- वैकल्पिक : प्रासंगिक कस्टम OAuth पैरामीटर को स्पष्ट रूप से पारित किए बिना प्रदाता के OAuth प्रवाह को उपयोगकर्ता की पसंदीदा भाषा में स्थानीयकृत करने के लिए, OAuth प्रवाह शुरू करने से पहले Auth उदाहरण पर भाषा कोड को अपडेट करें। उदाहरण के लिए:
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();
- वैकल्पिक : अतिरिक्त कस्टम OAuth प्रदाता पैरामीटर निर्दिष्ट करें जिन्हें आप OAuth अनुरोध के साथ भेजना चाहते हैं। एक कस्टम पैरामीटर जोड़ने के लिए, आरंभिक प्रदाता पर
setCustomParameters
एक ऑब्जेक्ट के साथ कॉल करें जिसमें OAuth प्रदाता दस्तावेज़ और संबंधित मान द्वारा निर्दिष्ट कुंजी हो। उदाहरण के लिए:आरक्षित आवश्यक OAuth पैरामीटर की अनुमति नहीं है और उन्हें अनदेखा कर दिया जाएगा। अधिक विवरण के लिए प्रमाणीकरण प्रदाता संदर्भ देखें।Web modular API
provider.setCustomParameters({ 'lang': 'es' });
Web namespaced API
provider.setCustomParameters({ 'lang': 'es' });
- ट्विटर प्रदाता ऑब्जेक्ट का उपयोग करके फायरबेस से प्रमाणित करें। आप अपने उपयोगकर्ताओं को पॉप-अप विंडो खोलकर या साइन-इन पेज पर रीडायरेक्ट करके अपने ट्विटर खातों से साइन इन करने के लिए प्रेरित कर सकते हैं। मोबाइल उपकरणों पर रीडायरेक्ट विधि को प्राथमिकता दी जाती है।
- पॉप-अप विंडो से साइन इन करने के लिए,
signInWithPopup
पर कॉल करें:यह भी ध्यान दें कि आप ट्विटर प्रदाता के OAuth टोकन को पुनः प्राप्त कर सकते हैं जिसका उपयोग ट्विटर एपीआई का उपयोग करके अतिरिक्त डेटा लाने के लिए किया जा सकता है।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; // ... });
यह वह जगह भी है जहां आप त्रुटियों को पकड़ और संभाल सकते हैं। त्रुटि कोड की सूची के लिए प्रामाणिक संदर्भ दस्तावेज़ पर एक नज़र डालें।
- साइन-इन पेज पर रीडायरेक्ट करके साइन इन करने के लिए,
signInWithRedirect
पर कॉल करें: `signInWithRedirect` का उपयोग करते समय सर्वोत्तम प्रथाओं का पालन करें।फिर, जब आपका पृष्ठ लोड होता है तो आपWeb modular API
import { getAuth, signInWithRedirect } from "firebase/auth"; const auth = getAuth(); signInWithRedirect(auth, provider);
Web namespaced API
firebase.auth().signInWithRedirect(provider);
getRedirectResult
पर कॉल करके ट्विटर प्रदाता के OAuth टोकन को भी पुनः प्राप्त कर सकते हैं:यह वह जगह भी है जहां आप त्रुटियों को पकड़ और संभाल सकते हैं। त्रुटि कोड की सूची के लिए प्रामाणिक संदर्भ दस्तावेज़ पर एक नज़र डालें।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; // ... });
- पॉप-अप विंडो से साइन इन करने के लिए,
साइन-इन प्रवाह को मैन्युअल रूप से संभालें
आप ट्विटर OAuth एंडपॉइंट्स पर कॉल करके साइन-इन प्रवाह को संभालकर ट्विटर खाते का उपयोग करके फायरबेस के साथ प्रमाणित भी कर सकते हैं:
- डेवलपर के दस्तावेज़ का पालन करके ट्विटर प्रमाणीकरण को अपने ऐप में एकीकृत करें। ट्विटर साइन-इन प्रवाह के अंत में, आपको एक OAuth एक्सेस टोकन और एक OAuth रहस्य प्राप्त होगा।
- यदि आपको Node.js एप्लिकेशन पर साइन इन करने की आवश्यकता है, तो OAuth एक्सेस टोकन और OAuth रहस्य Node.js एप्लिकेशन को भेजें।
- उपयोगकर्ता द्वारा ट्विटर पर सफलतापूर्वक साइन इन करने के बाद, फायरबेस क्रेडेंशियल के लिए OAuth एक्सेस टोकन और OAuth रहस्य का आदान-प्रदान करें:
var credential = firebase.auth.TwitterAuthProvider.credential(token, secret);
- फ़ायरबेस क्रेडेंशियल का उपयोग करके फ़ायरबेस से प्रमाणित करें:
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; // ... });
Chrome एक्सटेंशन में फ़ायरबेस से प्रमाणित करें
यदि आप Chrome एक्सटेंशन ऐप बना रहे हैं, तो आपको अपनी Chrome एक्सटेंशन आईडी जोड़नी होगी:
- अपना प्रोजेक्ट फायरबेस कंसोल में खोलें।
- प्रमाणीकरण अनुभाग में, साइन-इन विधि पृष्ठ खोलें।
- अधिकृत डोमेन की सूची में निम्नलिखित की तरह एक यूआरआई जोड़ें:
chrome-extension://CHROME_EXTENSION_ID
क्रोम एक्सटेंशन के लिए केवल पॉपअप ऑपरेशन ( signInWithPopup
, linkWithPopup
, और reauthenticateWithPopup
) उपलब्ध हैं, क्योंकि क्रोम एक्सटेंशन HTTP रीडायरेक्ट का उपयोग नहीं कर सकते हैं। आपको इन तरीकों को ब्राउज़र एक्शन पॉपअप के बजाय बैकग्राउंड पेज स्क्रिप्ट से कॉल करना चाहिए, क्योंकि प्रमाणीकरण पॉपअप ब्राउज़र एक्शन पॉपअप को रद्द कर देगा। पॉपअप विधियों का उपयोग केवल मेनिफेस्ट V2 का उपयोग करने वाले एक्सटेंशन में किया जा सकता है। नया मेनिफेस्ट V3 केवल सेवा कर्मियों के रूप में पृष्ठभूमि स्क्रिप्ट की अनुमति देता है, जो पॉपअप ऑपरेशन बिल्कुल भी नहीं कर सकता है।
अपने Chrome एक्सटेंशन की मेनिफेस्ट फ़ाइल में सुनिश्चित करें कि आप https://apis.google.com
URL को content_security_policy
अनुमति सूची में जोड़ें।
अगले कदम
किसी उपयोगकर्ता द्वारा पहली बार साइन इन करने के बाद, एक नया उपयोगकर्ता खाता बनाया जाता है और क्रेडेंशियल्स से लिंक किया जाता है - यानी, उपयोगकर्ता नाम और पासवर्ड, फोन नंबर, या ऑथ प्रदाता जानकारी - जिस उपयोगकर्ता के साथ साइन इन किया जाता है। यह नया खाता आपके फायरबेस प्रोजेक्ट के हिस्से के रूप में संग्रहीत है, और इसका उपयोग आपके प्रोजेक्ट के प्रत्येक ऐप में उपयोगकर्ता की पहचान करने के लिए किया जा सकता है, भले ही उपयोगकर्ता कैसे भी साइन इन करता हो।
आपके ऐप्स में, आपके उपयोगकर्ता की प्रामाणिक स्थिति जानने का अनुशंसित तरीका
Auth
ऑब्जेक्ट पर एक पर्यवेक्षक सेट करना है। फिर आपUser
ऑब्जेक्ट से उपयोगकर्ता की मूल प्रोफ़ाइल जानकारी प्राप्त कर सकते हैं। उपयोगकर्ता प्रबंधित करें देखें.अपने फायरबेस रीयलटाइम डेटाबेस और क्लाउड स्टोरेज सुरक्षा नियमों में, आप साइन-इन किए गए उपयोगकर्ता की अद्वितीय उपयोगकर्ता आईडी को
auth
वेरिएबल से प्राप्त कर सकते हैं, और इसका उपयोग यह नियंत्रित करने के लिए कर सकते हैं कि उपयोगकर्ता किस डेटा तक पहुंच सकता है।
किसी उपयोगकर्ता को साइन आउट करने के लिए, signOut
पर कॉल करें:
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. });