अपने ऐप्लिकेशन में Facebook Login को इंटिग्रेट करके, उपयोगकर्ताओं को Firebase में अपने Facebook खातों से पुष्टि करने की अनुमति दी जा सकती है. Facebook Login को इंटिग्रेट करने के लिए, Firebase SDK टूल का इस्तेमाल करके साइन-इन फ़्लो को पूरा किया जा सकता है. इसके अलावा, Facebook Login फ़्लो को मैन्युअल तरीके से पूरा करके, Firebase को ऐक्सेस टोकन पास किया जा सकता है.
शुरू करने से पहले
- अपने JavaScript प्रोजेक्ट में Firebase जोड़ें.
- Facebook for Developers साइट पर जाकर, अपने ऐप्लिकेशन के लिए ऐप्लिकेशन आईडी और ऐप्लिकेशन सीक्रेट पाएं.
-
अपने Firebase प्रोजेक्ट के लिए, Facebook Login को साइन-इन की सुविधा देने वाली कंपनी के तौर पर चालू करें:
- Firebase console में, सुरक्षा > पुष्टि पर जाएं.
- साइन-इन का तरीका टैब में, Facebook साइन-इन प्रोवाइडर को चालू करें. साथ ही, Facebook से मिले ऐप्लिकेशन आईडी और ऐप्लिकेशन सीक्रेट डालें.
-
पक्का करें कि आपका OAuth रीडायरेक्ट यूआरआई (उदाहरण के लिए,
my-app-12345.firebaseapp.com/__/auth/handler) Facebook for Developers साइट पर, OAuth रीडायरेक्ट यूआरआई के तौर पर लिस्ट किया गया हो. इसके लिए, Product Settings > Facebook Login कॉन्फ़िगरेशन में जाकर, Facebook ऐप्लिकेशन की सेटिंग वाले पेज पर जाएं.
Firebase SDK की मदद से, साइन-इन फ़्लो को मैनेज करना
अगर आपको कोई वेब ऐप्लिकेशन बनाना है, तो Facebook खातों का इस्तेमाल करके Firebase के साथ अपने उपयोगकर्ताओं की पुष्टि करने का सबसे आसान तरीका यह है कि Firebase JavaScript SDK की मदद से, साइन-इन फ़्लो को मैनेज किया जाए. (अगर आपको Node.js या ब्राउज़र के अलावा किसी अन्य एनवायरमेंट में किसी उपयोगकर्ता की पुष्टि करनी है, तो आपको साइन-इन करने की प्रोसेस को मैन्युअल तरीके से मैनेज करना होगा.)
Firebase JavaScript SDK की मदद से साइन-इन फ़्लो को मैनेज करने के लिए, यह तरीका अपनाएं:
- Facebook provider ऑब्जेक्ट का इंस्टेंस बनाएं:
Web
import { FacebookAuthProvider } from "firebase/auth"; const provider = new FacebookAuthProvider();
Web
var provider = new firebase.auth.FacebookAuthProvider();
- ज़रूरी नहीं: OAuth 2.0 के उन अतिरिक्त स्कोप के बारे में बताएं जिनके लिए आपको पुष्टि करने वाले प्रोवाइडर से अनुरोध करना है. स्कोप जोड़ने के लिए,
addScopeको कॉल करें. उदाहरण के लिए:पुष्टि करने की सेवा देने वाली कंपनी का दस्तावेज़ देखें.Web
provider.addScope('user_birthday');
Web
provider.addScope('user_birthday');
- ज़रूरी नहीं: अगर आपको OAuth फ़्लो को उपयोगकर्ता की पसंदीदा भाषा में बदलना है, तो OAuth फ़्लो शुरू करने से पहले Auth इंस्टेंस पर भाषा का कोड अपडेट करें. इससे आपको OAuth के कस्टम पैरामीटर पास करने की ज़रूरत नहीं पड़ेगी. उदाहरण के लिए:
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();
- वैकल्पिक: OAuth अनुरोध के साथ भेजने के लिए, OAuth प्रोवाइडर के अतिरिक्त कस्टम पैरामीटर तय करें. कस्टम पैरामीटर जोड़ने के लिए, शुरू किए गए प्रोवाइडर पर
setCustomParametersको कॉल करें. इसमें एक ऐसा ऑब्जेक्ट शामिल होना चाहिए जिसमें OAuth प्रोवाइडर के दस्तावेज़ में बताई गई कुंजी और उससे जुड़ी वैल्यू मौजूद हो. उदाहरण के लिए:रिज़र्व किए गए ज़रूरी OAuth पैरामीटर इस्तेमाल करने की अनुमति नहीं है. इन्हें अनदेखा कर दिया जाएगा. ज़्यादा जानकारी के लिए, पुष्टि करने वाले प्रोवाइडर का रेफ़रंस देखें.Web
provider.setCustomParameters({ 'display': 'popup' });
Web
provider.setCustomParameters({ 'display': 'popup' });
- Facebook provider ऑब्जेक्ट का इस्तेमाल करके, Firebase से पुष्टि करें. अपने उपयोगकर्ताओं को Facebook खातों से साइन इन करने के लिए कहा जा सकता है. इसके लिए, पॉप-अप विंडो खोली जा सकती है या उन्हें साइन-इन पेज पर रीडायरेक्ट किया जा सकता है. मोबाइल डिवाइसों पर रीडायरेक्ट करने का तरीका बेहतर होता है.
- पॉप-अप विंडो की मदद से साइन इन करने के लिए,
signInWithPopupको कॉल करें:यह भी ध्यान दें कि Facebook प्रोवाइडर का OAuth टोकन वापस पाया जा सकता है. इसका इस्तेमाल Facebook API की मदद से, अतिरिक्त डेटा फ़ेच करने के लिए किया जा सकता है.Web
import { getAuth, signInWithPopup, FacebookAuthProvider } from "firebase/auth"; const auth = getAuth(); signInWithPopup(auth, provider) .then((result) => { // The signed-in user info. const user = result.user; // This gives you a Facebook Access Token. You can use it to access the Facebook API. const credential = FacebookAuthProvider.credentialFromResult(result); const accessToken = credential.accessToken; // 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 = FacebookAuthProvider.credentialFromError(error); // ... });
Web
firebase .auth() .signInWithPopup(provider) .then((result) => { /** @type {firebase.auth.OAuthCredential} */ var credential = result.credential; // The signed-in user info. var user = result.user; // IdP data available in result.additionalUserInfo.profile. // ... // This gives you a Facebook Access Token. You can use it to access the Facebook API. var accessToken = credential.accessToken; // ... }) .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; // ... });
यहां गड़बड़ियों का पता लगाया जा सकता है और उन्हें ठीक किया जा सकता है. गड़बड़ी के कोड की सूची देखने के लिए, Auth के रेफ़रंस दस्तावेज़ देखें.
- साइन-इन पेज पर रीडायरेक्ट करके साइन इन करने के लिए,
signInWithRedirectको कॉल करें: `signInWithRedirect` का इस्तेमाल करते समय, सबसे सही तरीके अपनाएं.इसके बाद, पेज लोड होने पर,Web
import { getAuth, signInWithRedirect } from "firebase/auth"; const auth = getAuth(); signInWithRedirect(auth, provider);
Web
firebase.auth().signInWithRedirect(provider);
getRedirectResultको कॉल करके, Facebook सेवा देने वाली कंपनी का OAuth टोकन भी वापस पाया जा सकता है:यहां गड़बड़ियों का पता लगाया जा सकता है और उन्हें ठीक किया जा सकता है. गड़बड़ी के कोड की सूची देखने के लिए, Auth के रेफ़रंस दस्तावेज़ देखें.Web
import { getAuth, getRedirectResult, FacebookAuthProvider } from "firebase/auth"; const auth = getAuth(); getRedirectResult(auth) .then((result) => { // This gives you a Facebook Access Token. You can use it to access the Facebook API. const credential = FacebookAuthProvider.credentialFromResult(result); const token = credential.accessToken; 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; // AuthCredential type that was used. const credential = FacebookAuthProvider.credentialFromError(error); // ... });
Web
firebase.auth() .getRedirectResult() .then((result) => { if (result.credential) { /** @type {firebase.auth.OAuthCredential} */ var credential = result.credential; // This gives you a Facebook Access Token. You can use it to access the Facebook API. var token = credential.accessToken; // ... } // 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; // ... });
- पॉप-अप विंडो की मदद से साइन इन करने के लिए,
Chrome एक्सटेंशन में Firebase की मदद से पुष्टि करना
अगर आपको Chrome एक्सटेंशन ऐप्लिकेशन बनाना है, तो ऑफ़स्क्रीन दस्तावेज़ों से जुड़ी गाइड देखें.
अगले चरण
जब कोई उपयोगकर्ता पहली बार साइन इन करता है, तो एक नया उपयोगकर्ता खाता बनता है. यह खाता, उस क्रेडेंशियल से लिंक होता है जिससे उपयोगकर्ता ने साइन इन किया था. जैसे, उपयोगकर्ता का नाम और पासवर्ड, फ़ोन नंबर या पुष्टि करने वाली कंपनी की जानकारी. यह नया खाता, आपके Firebase प्रोजेक्ट के हिस्से के तौर पर सेव किया जाता है. इसका इस्तेमाल, आपके प्रोजेक्ट के हर ऐप्लिकेशन में किसी उपयोगकर्ता की पहचान करने के लिए किया जा सकता है. इससे कोई फ़र्क़ नहीं पड़ता कि उपयोगकर्ता ने किस तरह से साइन इन किया है.
-
अपने ऐप्लिकेशन में, उपयोगकर्ता की पुष्टि की स्थिति जानने का सबसे सही तरीका यह है कि
Authऑब्जेक्ट पर एक ऑब्ज़र्वर सेट करें. इसके बाद, आपकोUserऑब्जेक्ट से उपयोगकर्ता की प्रोफ़ाइल की बुनियादी जानकारी मिल सकती है. उपयोगकर्ताओं को मैनेज करना लेख पढ़ें. Firebase Realtime Database और Cloud Storage सुरक्षा नियमों में, आपको ये काम करने की सुविधा मिलती है: साइन इन किए हुए उपयोगकर्ता का यूनीक User-ID,
authवैरिएबल से पाएं, और इसका इस्तेमाल यह कंट्रोल करने के लिए करें कि कोई उपयोगकर्ता किस डेटा को ऐक्सेस कर सकता है.
उपयोगकर्ताओं को, पुष्टि करने वाली कई कंपनियों की मदद से आपके ऐप्लिकेशन में साइन इन करने की अनुमति दी जा सकती है. इसके लिए, पुष्टि करने वाली कंपनी के क्रेडेंशियल को किसी मौजूदा उपयोगकर्ता खाते से लिंक करें.
किसी उपयोगकर्ता को साइन आउट करने के लिए,
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. });