JavaScript के साथ Facebook लॉगिन का इस्तेमाल करके पुष्टि करें

अपने ऐप्लिकेशन में Facebook Login को इंटिग्रेट करके, उपयोगकर्ताओं को अपने Facebook खातों से Firebase में पुष्टि करने की सुविधा दी जा सकती है. Facebook Login को इंटिग्रेट करने के लिए, साइन-इन फ़्लो को पूरा करने के लिए Firebase SDK का इस्तेमाल किया जा सकता है. इसके अलावा, Facebook Login फ़्लो को मैन्युअल तरीके से पूरा किया जा सकता है और इसके बाद, मिले ऐक्सेस टोकन को Firebase को पास किया जा सकता है.

शुरू करने से पहले

  1. अपने JavaScript प्रोजेक्ट में Firebase जोड़ें.
  2. Facebook for Developers साइट पर जाकर, अपने ऐप्लिकेशन के लिए ऐप्लिकेशन आईडी और ऐप्लिकेशन सीक्रेट पाएं.
  3. अपने Firebase प्रोजेक्ट के लिए, Facebook Login को साइन-इन करने की सुविधा देने वाली कंपनी के तौर पर चालू करें:
    1. Firebase console में, सुरक्षा > पुष्टि करना पर जाएं.
    2. साइन-इन करने का तरीका टैब में, Facebook से साइन-इन करने की सुविधा देने वाली कंपनी को चालू करें. इसके बाद, Facebook से मिला ऐप्लिकेशन आईडी और ऐप्लिकेशन सीक्रेट डालें.
    3. पक्का करें कि आपका OAuth रीडायरेक्ट यूआरआई (उदाहरण के लिए, my-app-12345.firebaseapp.com/__/auth/handler) Facebook for Developers साइट पर, आपके Facebook ऐप्लिकेशन के सेटिंग पेज पर Product Settings > Facebook Login कॉन्फ़िगरेशन में, आपके OAuth रीडायरेक्ट यूआरआई में से एक के तौर पर शामिल हो.

Firebase SDK की मदद से, साइन-इन फ़्लो को मैनेज करना

अगर कोई वेब ऐप्लिकेशन बनाया जा रहा है, तो उपयोगकर्ताओं को उनके Facebook खातों की मदद से Firebase में पुष्टि करने की सुविधा देने का सबसे आसान तरीका है कि Firebase JavaScript SDK की मदद से, साइन-इन फ़्लो को मैनेज किया जाए. (अगर आपको Node.js या ब्राउज़र के अलावा किसी अन्य एनवायरमेंट में किसी उपयोगकर्ता की पुष्टि करनी है, तो आपको साइन-इन फ़्लो को मैन्युअल तरीके से मैनेज करना होगा.)

Firebase JavaScript SDK की मदद से, साइन-इन फ़्लो को मैनेज करने के लिए, यह तरीका अपनाएं:

  1. Facebook की सुविधा देने वाले ऑब्जेक्ट का इंस्टेंस बनाएं:

    Web

    import { FacebookAuthProvider } from "firebase/auth";
    
    const provider = new FacebookAuthP_create.js

    Web

    var provider = new firebase.auth.FacebookAuthProvider();
  2. ज़रूरी नहीं: OAuth 2.0 के वे अतिरिक्त स्कोप तय करें जिनके लिए आपको पुष्टि करने की सुविधा देने वाली कंपनी से अनुरोध करना है. कोई स्कोप जोड़ने के लिए, कॉल करें addScope. उदाहरण के लिए:

    Web

    provider.addScope('user_birthdacopes.js

    Web

    provider.addScope('user_birthdaebook.js
    पुष्टि करने की सुविधा देने वाली कंपनी का दस्तावेज़ देखें.
  3. ज़रूरी नहीं: OAuth के काम के कस्टम पैरामीटर साफ़ तौर पर पास किए बिना, पुष्टि करने की सुविधा देने वाली कंपनी के OAuth फ़्लो को उपयोगकर्ता की पसंदीदा भाषा में स्थानीय बनाने के लिए, OAuth फ़्लो शुरू करने से पहले, Auth इंस्टेंस पर भाषा कोड अपडेट करें. उदाहरण के लिए:

    Web

    import { getAuth } from "firebase/auth";
    
    const auth = getAuth();
    auth.languageCode = 'it';
    // To apply the default browser preference instead of explicitly setting it.
    // auth.ust_language_code.js

    Web

    firebase.auth().languageCode = 'it';
    // To apply the default browser preference instead of explicitly setting it.
    // firebase.auth().useDeviceLanindex.js
  4. ज़रूरी नहीं: OAuth के वे अतिरिक्त कस्टम पैरामीटर तय करें जिन्हें आपको OAuth अनुरोध के साथ भेजना है. कोई कस्टम पैरामीटर जोड़ने के लिए, शुरू की गई सुविधा देने वाली कंपनी पर setCustomParameters को कॉल करें. इसके साथ, एक ऐसा ऑब्जेक्ट इस्तेमाल करें जिसमें OAuth की सुविधा देने वाली कंपनी के दस्तावेज़ में बताई गई कुंजी और उससे जुड़ी वैल्यू शामिल हो. उदाहरण के लिए:

    Web

    provider.setCustomParameters({
      'display': ovider_params.js

    Web

    provider.setCustomParameters({
      'display': ;
    });facebook.js
    OAuth के ज़रूरी पैरामीटर रिज़र्व नहीं किए जा सकते. इन्हें अनदेखा कर दिया जाएगा. ज़्यादा जानकारी के लिए, पुष्टि करने की सुविधा देने वाली कंपनी का रेफ़रंस देखें.
  5. Facebook की सुविधा देने वाले ऑब्जेक्ट का इस्तेमाल करके, Firebase में पुष्टि करें. उपयोगकर्ताओं को उनके Facebook खातों से साइन इन करने के लिए, पॉप-अप विंडो खोलकर या साइन-इन पेज पर रीडायरेक्ट करके अनुरोध किया जा सकता है. मोबाइल डिवाइसों पर, रीडायरेक्ट करने का तरीका बेहतर होता है.
    • पॉप-अप विंडो की मदद से साइन इन करने के लिए, signInWithPopup को कॉल करें:

      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);
      
        ignin_popup.js

      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;
      
          // ...
       k.js
      इसके अलावा, ध्यान दें कि Facebook की सुविधा देने वाली कंपनी का OAuth टोकन वापस पाया जा सकता है. इसका इस्तेमाल, Facebook के एपीआई की मदद से अतिरिक्त डेटा फ़ेच करने के लिए किया जा सकता है.

      यहां गड़बड़ियों को पकड़ा और मैनेज भी किया जा सकता है. गड़बड़ी कोड की सूची देखने के लिए, पुष्टि करने की सुविधा के रेफ़रंस दस्तावेज़ देखें.

    • साइन-इन पेज पर रीडायरेक्ट करके साइन इन करने के लिए, signInWithRedirect को कॉल करें: `signInWithRedirect` का इस्तेमाल करते समय, सबसे सही तरीकों को अपनाएं.

      Web

      import { getAuth, signInWithRedirect } from "firebase/auth";
      
      const auth = getAuth();
      signInWithRedirect(auth, edirect.js

      Web

      firebase.auth().signInWithRedirect(provider);
      इसके बाद, पेज लोड होने पर, Facebook की सुविधा देने वाली कंपनी का OAuth टोकन भी वापस पाया जा सकता है:getRedirectResult

      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);
        rect_result.js

      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;
          // ...
       k.js
      यहां गड़बड़ियों को पकड़ा और मैनेज भी किया जा सकता है. गड़बड़ी कोड की सूची देखने के लिए, पुष्टि करने की सुविधा के रेफ़रंस दस्तावेज़ देखें.

Chrome एक्सटेंशन में Firebase में पुष्टि करना

अगर Chrome एक्सटेंशन ऐप्लिकेशन बनाया जा रहा है, तो ऑफ़स्क्रीन दस्तावेज़ों से जुड़ी गाइड देखें.

अगले चरण

जब कोई उपयोगकर्ता पहली बार साइन इन करता है, तो एक नया उपयोगकर्ता खाता बनता है. यह खाता, उन क्रेडेंशियल से लिंक होता है जिनकी मदद से उपयोगकर्ता ने साइन इन किया है. जैसे, उपयोगकर्ता नाम और पासवर्ड, फ़ोन नंबर या पुष्टि करने की सुविधा देने वाली कंपनी की जानकारी. यह नया खाता, आपके Firebase प्रोजेक्ट के हिस्से के तौर पर सेव होता है. इसका इस्तेमाल, आपके प्रोजेक्ट के हर ऐप्लिकेशन में किसी उपयोगकर्ता की पहचान करने के लिए किया जा सकता है. भले ही, उपयोगकर्ता किसी भी तरीके से साइन इन करे.

  • अपने ऐप्लिकेशन में, उपयोगकर्ता की पुष्टि करने की स्थिति जानने के लिए, Auth ऑब्जेक्ट पर ऑब्ज़र्वर सेट करने का सुझाव दिया जाता है. इसके बाद, User ऑब्जेक्ट से उपयोगकर्ता की बुनियादी प्रोफ़ाइल की जानकारी पाई जा सकती है. उपयोगकर्ताओं को मैनेज करना देखें .

  • अपने Firebase Realtime Database और Cloud Storage सुरक्षा नियमों में, आप साइन इन किए हुए उपयोगकर्ता का यूनीक उपयोगकर्ता आईडी auth वैरिएबल से पा सकते हैं. इसका इस्तेमाल, यह कंट्रोल करने के लिए किया जा सकता है कि कोई उपयोगकर्ता किस डेटा को ऐक्सेस कर सकता है.

पुष्टि करने की सुविधा देने वाली कंपनी के क्रेडेंशियल को किसी मौजूदा उपयोगकर्ता खाते से लिंक करके, उपयोगकर्ताओं को पुष्टि करने की एक से ज़्यादा सुविधाओं का इस्तेमाल करके, आपके ऐप्लिकेशन में साइन इन करने की अनुमति दी जा सकती है.

किसी उपयोगकर्ता को साइन आउट करने के लिए, signOut को कॉल करें:

Web

import { getAuth, signOut } from "firebase/auth";

const auth = getAuth();
signOut(auth)>.then(() = {
  // Sign-out successful.
}).catch>((error) = {
  // An error hapign_out.js

Web

firebase.auth().signOut().then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});