जावास्क्रिप्ट के साथ GitHub का उपयोग करके प्रमाणित करें

आप अपने ऐप में GitHub प्रमाणीकरण को एकीकृत करके अपने उपयोगकर्ताओं को उनके GitHub खातों का उपयोग करके Firebase से प्रमाणित करने दे सकते हैं। आप साइन-इन प्रवाह को पूरा करने के लिए या तो GitHub OAuth 2.0 प्रवाह को मैन्युअल रूप से चलाने और परिणामी एक्सेस टोकन को Firebase पर पास करके GitHub प्रमाणीकरण को एकीकृत कर सकते हैं।

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

  1. अपने जावास्क्रिप्ट प्रोजेक्ट में फायरबेस जोड़ें
  2. फायरबेस कंसोल में, ऑथ सेक्शन खोलें।
  3. साइन इन विधि टैब पर, GitHub प्रदाता को सक्षम करें।
  4. उस प्रदाता के डेवलपर कंसोल से क्लाइंट आईडी और क्लाइंट सीक्रेट को प्रदाता कॉन्फ़िगरेशन में जोड़ें:
    1. अपने ऐप को GitHub पर एक डेवलपर एप्लिकेशन के रूप में पंजीकृत करें और अपने ऐप का OAuth 2.0 क्लाइंट आईडी और क्लाइंट सीक्रेट प्राप्त करें।
    2. सुनिश्चित करें कि आपका फायरबेस OAuth रीडायरेक्ट URI (उदाहरण के लिए my-app-12345.firebaseapp.com/__/auth/handler ) आपके GitHub ऐप के कॉन्फ़िगरेशन पर आपके ऐप के सेटिंग पेज में आपके प्राधिकरण कॉलबैक URL के रूप में सेट है।
  5. सहेजें पर क्लिक करें.

फायरबेस एसडीके के साथ साइन-इन प्रवाह को संभालें

यदि आप एक वेब ऐप बना रहे हैं, तो अपने उपयोगकर्ताओं को उनके GitHub खातों का उपयोग करके फायरबेस के साथ प्रमाणित करने का सबसे आसान तरीका फायरबेस जावास्क्रिप्ट एसडीके के साथ साइन-इन प्रवाह को संभालना है। (यदि आप Node.js या अन्य गैर-ब्राउज़र वातावरण में किसी उपयोगकर्ता को प्रमाणित करना चाहते हैं, तो आपको साइन-इन प्रवाह को मैन्युअल रूप से संभालना होगा।)

फायरबेस जावास्क्रिप्ट एसडीके के साथ साइन-इन प्रवाह को संभालने के लिए, इन चरणों का पालन करें:

  1. GitHub प्रदाता ऑब्जेक्ट का एक उदाहरण बनाएं:

    Web modular API

    import { GithubAuthProvider } from "firebase/auth";
    
    const provider = new GithubAuthProvider();

    Web namespaced API

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

    Web modular API

    provider.addScope('repo');

    Web namespaced API

    provider.addScope('repo');
    प्रमाणीकरण प्रदाता दस्तावेज़ देखें.
  3. वैकल्पिक : अतिरिक्त कस्टम OAuth प्रदाता पैरामीटर निर्दिष्ट करें जिन्हें आप OAuth अनुरोध के साथ भेजना चाहते हैं। एक कस्टम पैरामीटर जोड़ने के लिए, आरंभिक प्रदाता पर setCustomParameters एक ऑब्जेक्ट के साथ कॉल करें जिसमें OAuth प्रदाता दस्तावेज़ और संबंधित मान द्वारा निर्दिष्ट कुंजी हो। उदाहरण के लिए:

    Web modular API

    provider.setCustomParameters({
      'allow_signup': 'false'
    });

    Web namespaced API

    provider.setCustomParameters({
      'allow_signup': 'false'
    });
    आरक्षित आवश्यक OAuth पैरामीटर की अनुमति नहीं है और उन्हें अनदेखा कर दिया जाएगा। अधिक विवरण के लिए प्रमाणीकरण प्रदाता संदर्भ देखें।
  4. GitHub प्रदाता ऑब्जेक्ट का उपयोग करके फ़ायरबेस से प्रमाणित करें। आप अपने उपयोगकर्ताओं को पॉप-अप विंडो खोलकर या साइन-इन पेज पर रीडायरेक्ट करके अपने GitHub खातों से साइन इन करने के लिए प्रेरित कर सकते हैं। मोबाइल उपकरणों पर रीडायरेक्ट विधि को प्राथमिकता दी जाती है।
    • पॉप-अप विंडो से साइन इन करने के लिए, signInWithPopup पर कॉल करें:

      Web modular API

      import { getAuth, signInWithPopup, GithubAuthProvider } from "firebase/auth";
      
      const auth = getAuth();
      signInWithPopup(auth, provider)
        .then((result) => {
          // This gives you a GitHub Access Token. You can use it to access the GitHub API.
          const credential = GithubAuthProvider.credentialFromResult(result);
          const token = credential.accessToken;
      
          // 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 = GithubAuthProvider.credentialFromError(error);
          // ...
        });

      Web namespaced API

      firebase
        .auth()
        .signInWithPopup(provider)
        .then((result) => {
          /** @type {firebase.auth.OAuthCredential} */
          var credential = result.credential;
      
          // This gives you a GitHub Access Token. You can use it to access the GitHub 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;
          // ...
        });
      यह भी ध्यान दें कि आप GitHub प्रदाता के OAuth टोकन को पुनः प्राप्त कर सकते हैं जिसका उपयोग GitHub API का उपयोग करके अतिरिक्त डेटा लाने के लिए किया जा सकता है।

      यह वह जगह भी है जहां आप त्रुटियों को पकड़ और संभाल सकते हैं। त्रुटि कोड की सूची के लिए प्रामाणिक संदर्भ दस्तावेज़ पर एक नज़र डालें।

    • साइन-इन पेज पर रीडायरेक्ट करके साइन इन करने के लिए, 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 पर कॉल करके GitHub प्रदाता के OAuth टोकन को भी पुनः प्राप्त कर सकते हैं:

      Web modular API

      import { getAuth, getRedirectResult, GithubAuthProvider } from "firebase/auth";
      
      const auth = getAuth();
      getRedirectResult(auth)
        .then((result) => {
          const credential = GithubAuthProvider.credentialFromResult(result);
          if (credential) {
            // This gives you a GitHub Access Token. You can use it to access the GitHub API.
            const token = credential.accessToken;
            // ...
          }
      
          // 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 = GithubAuthProvider.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 GitHub Access Token. You can use it to access the GitHub 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;
          // ...
        });
      यह वह जगह भी है जहां आप त्रुटियों को पकड़ और संभाल सकते हैं। त्रुटि कोड की सूची के लिए प्रामाणिक संदर्भ दस्तावेज़ पर एक नज़र डालें।

साइन-इन प्रवाह को मैन्युअल रूप से संभालें

आप GitHub OAuth 2.0 एंडपॉइंट पर कॉल करके साइन-इन प्रवाह को संभालकर GitHub खाते का उपयोग करके फायरबेस के साथ प्रमाणित भी कर सकते हैं:

  1. डेवलपर के दस्तावेज़ का पालन करके GitHub प्रमाणीकरण को अपने ऐप में एकीकृत करें। GitHub साइन-इन प्रवाह के अंत में, आपको OAuth 2.0 एक्सेस टोकन प्राप्त होगा।
  2. यदि आपको Node.js एप्लिकेशन पर साइन इन करने की आवश्यकता है, तो Node.js एप्लिकेशन को OAuth एक्सेस टोकन भेजें।
  3. उपयोगकर्ता द्वारा GitHub के साथ सफलतापूर्वक साइन इन करने के बाद, फायरबेस क्रेडेंशियल के लिए OAuth 2.0 एक्सेस टोकन का आदान-प्रदान करें:

    Web modular API

    import { GithubAuthProvider } from "firebase/auth";
    
    const credential = GithubAuthProvider.credential(token);

    Web namespaced API

    var credential = firebase.auth.GithubAuthProvider.credential(token);
  4. फ़ायरबेस क्रेडेंशियल का उपयोग करके फ़ायरबेस से प्रमाणित करें:

    Web modular API

    import { getAuth, signInWithCredential } from "firebase/auth";
    
    // Sign in with the credential from the user.
    const auth = getAuth();
    signInWithCredential(auth, credential)
      .then((result) => {
        // Signed in 
        // ...
      })
      .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;
        // ...
      });

    Web namespaced API

    // Sign in with the credential from the user.
    firebase.auth()
      .signInWithCredential(credential)
      .then((result) => {
        // Signed in 
        // ...
      })
      .catch((error) => {
        // Handle Errors here.
        const errorCode = error.code;
        const errorMessage = error.message;
        // The email of the user's account used.
        const email = error.email;
        // ...
      });

Chrome एक्सटेंशन में फ़ायरबेस से प्रमाणित करें

यदि आप Chrome एक्सटेंशन ऐप बना रहे हैं, तो ऑफ़स्क्रीन दस्तावेज़ मार्गदर्शिका देखें।

अगले कदम

किसी उपयोगकर्ता द्वारा पहली बार साइन इन करने के बाद, एक नया उपयोगकर्ता खाता बनाया जाता है और क्रेडेंशियल्स से लिंक किया जाता है - यानी, उपयोगकर्ता नाम और पासवर्ड, फोन नंबर, या ऑथ प्रदाता जानकारी - जिस उपयोगकर्ता के साथ साइन इन किया जाता है। यह नया खाता आपके फायरबेस प्रोजेक्ट के हिस्से के रूप में संग्रहीत है, और इसका उपयोग आपके प्रोजेक्ट के प्रत्येक ऐप में उपयोगकर्ता की पहचान करने के लिए किया जा सकता है, भले ही उपयोगकर्ता कैसे भी साइन इन करता हो।

  • आपके ऐप्स में, आपके उपयोगकर्ता की प्रामाणिक स्थिति जानने का अनुशंसित तरीका 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.
});
,

आप अपने ऐप में GitHub प्रमाणीकरण को एकीकृत करके अपने उपयोगकर्ताओं को उनके GitHub खातों का उपयोग करके Firebase से प्रमाणित करने दे सकते हैं। आप साइन-इन प्रवाह को पूरा करने के लिए या तो GitHub OAuth 2.0 प्रवाह को मैन्युअल रूप से चलाने और परिणामी एक्सेस टोकन को Firebase पर पास करके GitHub प्रमाणीकरण को एकीकृत कर सकते हैं।

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

  1. अपने जावास्क्रिप्ट प्रोजेक्ट में फायरबेस जोड़ें
  2. फायरबेस कंसोल में, ऑथ सेक्शन खोलें।
  3. साइन इन विधि टैब पर, GitHub प्रदाता को सक्षम करें।
  4. उस प्रदाता के डेवलपर कंसोल से क्लाइंट आईडी और क्लाइंट सीक्रेट को प्रदाता कॉन्फ़िगरेशन में जोड़ें:
    1. अपने ऐप को GitHub पर एक डेवलपर एप्लिकेशन के रूप में पंजीकृत करें और अपने ऐप का OAuth 2.0 क्लाइंट आईडी और क्लाइंट सीक्रेट प्राप्त करें।
    2. सुनिश्चित करें कि आपका फायरबेस OAuth रीडायरेक्ट URI (उदाहरण के लिए my-app-12345.firebaseapp.com/__/auth/handler ) आपके GitHub ऐप के कॉन्फ़िगरेशन पर आपके ऐप के सेटिंग पेज में आपके प्राधिकरण कॉलबैक URL के रूप में सेट है।
  5. सहेजें पर क्लिक करें.

फायरबेस एसडीके के साथ साइन-इन प्रवाह को संभालें

यदि आप एक वेब ऐप बना रहे हैं, तो अपने उपयोगकर्ताओं को उनके GitHub खातों का उपयोग करके फायरबेस के साथ प्रमाणित करने का सबसे आसान तरीका फायरबेस जावास्क्रिप्ट एसडीके के साथ साइन-इन प्रवाह को संभालना है। (यदि आप Node.js या अन्य गैर-ब्राउज़र वातावरण में किसी उपयोगकर्ता को प्रमाणित करना चाहते हैं, तो आपको साइन-इन प्रवाह को मैन्युअल रूप से संभालना होगा।)

फायरबेस जावास्क्रिप्ट एसडीके के साथ साइन-इन प्रवाह को संभालने के लिए, इन चरणों का पालन करें:

  1. GitHub प्रदाता ऑब्जेक्ट का एक उदाहरण बनाएं:

    Web modular API

    import { GithubAuthProvider } from "firebase/auth";
    
    const provider = new GithubAuthProvider();

    Web namespaced API

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

    Web modular API

    provider.addScope('repo');

    Web namespaced API

    provider.addScope('repo');
    प्रमाणीकरण प्रदाता दस्तावेज़ देखें.
  3. वैकल्पिक : अतिरिक्त कस्टम OAuth प्रदाता पैरामीटर निर्दिष्ट करें जिन्हें आप OAuth अनुरोध के साथ भेजना चाहते हैं। एक कस्टम पैरामीटर जोड़ने के लिए, आरंभिक प्रदाता पर setCustomParameters एक ऑब्जेक्ट के साथ कॉल करें जिसमें OAuth प्रदाता दस्तावेज़ और संबंधित मान द्वारा निर्दिष्ट कुंजी हो। उदाहरण के लिए:

    Web modular API

    provider.setCustomParameters({
      'allow_signup': 'false'
    });

    Web namespaced API

    provider.setCustomParameters({
      'allow_signup': 'false'
    });
    आरक्षित आवश्यक OAuth पैरामीटर की अनुमति नहीं है और उन्हें अनदेखा कर दिया जाएगा। अधिक विवरण के लिए प्रमाणीकरण प्रदाता संदर्भ देखें।
  4. GitHub प्रदाता ऑब्जेक्ट का उपयोग करके फ़ायरबेस से प्रमाणित करें। आप अपने उपयोगकर्ताओं को पॉप-अप विंडो खोलकर या साइन-इन पेज पर रीडायरेक्ट करके अपने GitHub खातों से साइन इन करने के लिए प्रेरित कर सकते हैं। मोबाइल उपकरणों पर रीडायरेक्ट विधि को प्राथमिकता दी जाती है।
    • पॉप-अप विंडो से साइन इन करने के लिए, signInWithPopup पर कॉल करें:

      Web modular API

      import { getAuth, signInWithPopup, GithubAuthProvider } from "firebase/auth";
      
      const auth = getAuth();
      signInWithPopup(auth, provider)
        .then((result) => {
          // This gives you a GitHub Access Token. You can use it to access the GitHub API.
          const credential = GithubAuthProvider.credentialFromResult(result);
          const token = credential.accessToken;
      
          // 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 = GithubAuthProvider.credentialFromError(error);
          // ...
        });

      Web namespaced API

      firebase
        .auth()
        .signInWithPopup(provider)
        .then((result) => {
          /** @type {firebase.auth.OAuthCredential} */
          var credential = result.credential;
      
          // This gives you a GitHub Access Token. You can use it to access the GitHub 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;
          // ...
        });
      यह भी ध्यान दें कि आप GitHub प्रदाता के OAuth टोकन को पुनः प्राप्त कर सकते हैं जिसका उपयोग GitHub API का उपयोग करके अतिरिक्त डेटा लाने के लिए किया जा सकता है।

      यह वह जगह भी है जहां आप त्रुटियों को पकड़ और संभाल सकते हैं। त्रुटि कोड की सूची के लिए प्रामाणिक संदर्भ दस्तावेज़ पर एक नज़र डालें।

    • साइन-इन पेज पर रीडायरेक्ट करके साइन इन करने के लिए, 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 पर कॉल करके GitHub प्रदाता के OAuth टोकन को भी पुनः प्राप्त कर सकते हैं:

      Web modular API

      import { getAuth, getRedirectResult, GithubAuthProvider } from "firebase/auth";
      
      const auth = getAuth();
      getRedirectResult(auth)
        .then((result) => {
          const credential = GithubAuthProvider.credentialFromResult(result);
          if (credential) {
            // This gives you a GitHub Access Token. You can use it to access the GitHub API.
            const token = credential.accessToken;
            // ...
          }
      
          // 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 = GithubAuthProvider.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 GitHub Access Token. You can use it to access the GitHub 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;
          // ...
        });
      यह वह जगह भी है जहां आप त्रुटियों को पकड़ और संभाल सकते हैं। त्रुटि कोड की सूची के लिए प्रामाणिक संदर्भ दस्तावेज़ पर एक नज़र डालें।

साइन-इन प्रवाह को मैन्युअल रूप से संभालें

आप GitHub OAuth 2.0 एंडपॉइंट पर कॉल करके साइन-इन प्रवाह को संभालकर GitHub खाते का उपयोग करके फायरबेस के साथ प्रमाणित भी कर सकते हैं:

  1. डेवलपर के दस्तावेज़ का पालन करके GitHub प्रमाणीकरण को अपने ऐप में एकीकृत करें। GitHub साइन-इन प्रवाह के अंत में, आपको OAuth 2.0 एक्सेस टोकन प्राप्त होगा।
  2. यदि आपको Node.js एप्लिकेशन पर साइन इन करने की आवश्यकता है, तो Node.js एप्लिकेशन को OAuth एक्सेस टोकन भेजें।
  3. उपयोगकर्ता द्वारा GitHub के साथ सफलतापूर्वक साइन इन करने के बाद, फायरबेस क्रेडेंशियल के लिए OAuth 2.0 एक्सेस टोकन का आदान-प्रदान करें:

    Web modular API

    import { GithubAuthProvider } from "firebase/auth";
    
    const credential = GithubAuthProvider.credential(token);

    Web namespaced API

    var credential = firebase.auth.GithubAuthProvider.credential(token);
  4. फ़ायरबेस क्रेडेंशियल का उपयोग करके फ़ायरबेस से प्रमाणित करें:

    Web modular API

    import { getAuth, signInWithCredential } from "firebase/auth";
    
    // Sign in with the credential from the user.
    const auth = getAuth();
    signInWithCredential(auth, credential)
      .then((result) => {
        // Signed in 
        // ...
      })
      .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;
        // ...
      });

    Web namespaced API

    // Sign in with the credential from the user.
    firebase.auth()
      .signInWithCredential(credential)
      .then((result) => {
        // Signed in 
        // ...
      })
      .catch((error) => {
        // Handle Errors here.
        const errorCode = error.code;
        const errorMessage = error.message;
        // The email of the user's account used.
        const email = error.email;
        // ...
      });

Chrome एक्सटेंशन में फ़ायरबेस से प्रमाणित करें

यदि आप Chrome एक्सटेंशन ऐप बना रहे हैं, तो ऑफ़स्क्रीन दस्तावेज़ मार्गदर्शिका देखें।

अगले कदम

किसी उपयोगकर्ता द्वारा पहली बार साइन इन करने के बाद, एक नया उपयोगकर्ता खाता बनाया जाता है और क्रेडेंशियल्स से लिंक किया जाता है - यानी, उपयोगकर्ता नाम और पासवर्ड, फोन नंबर, या ऑथ प्रदाता जानकारी - जिस उपयोगकर्ता के साथ साइन इन किया जाता है। यह नया खाता आपके फायरबेस प्रोजेक्ट के हिस्से के रूप में संग्रहीत है, और इसका उपयोग आपके प्रोजेक्ट के प्रत्येक ऐप में उपयोगकर्ता की पहचान करने के लिए किया जा सकता है, भले ही उपयोगकर्ता कैसे भी साइन इन करता हो।

  • आपके ऐप्स में, आपके उपयोगकर्ता की प्रामाणिक स्थिति जानने का अनुशंसित तरीका 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.
});
,

आप अपने ऐप में GitHub प्रमाणीकरण को एकीकृत करके अपने उपयोगकर्ताओं को उनके GitHub खातों का उपयोग करके Firebase से प्रमाणित करने दे सकते हैं। आप साइन-इन प्रवाह को पूरा करने के लिए या तो GitHub OAuth 2.0 प्रवाह को मैन्युअल रूप से चलाने और परिणामी एक्सेस टोकन को Firebase पर पास करके GitHub प्रमाणीकरण को एकीकृत कर सकते हैं।

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

  1. अपने जावास्क्रिप्ट प्रोजेक्ट में फायरबेस जोड़ें
  2. फायरबेस कंसोल में, ऑथ सेक्शन खोलें।
  3. साइन इन विधि टैब पर, GitHub प्रदाता को सक्षम करें।
  4. उस प्रदाता के डेवलपर कंसोल से क्लाइंट आईडी और क्लाइंट सीक्रेट को प्रदाता कॉन्फ़िगरेशन में जोड़ें:
    1. अपने ऐप को GitHub पर एक डेवलपर एप्लिकेशन के रूप में पंजीकृत करें और अपने ऐप का OAuth 2.0 क्लाइंट आईडी और क्लाइंट सीक्रेट प्राप्त करें।
    2. सुनिश्चित करें कि आपका फायरबेस OAuth रीडायरेक्ट URI (उदाहरण के लिए my-app-12345.firebaseapp.com/__/auth/handler ) आपके GitHub ऐप के कॉन्फ़िगरेशन पर आपके ऐप के सेटिंग पेज में आपके प्राधिकरण कॉलबैक URL के रूप में सेट है।
  5. सहेजें पर क्लिक करें.

फायरबेस एसडीके के साथ साइन-इन प्रवाह को संभालें

यदि आप एक वेब ऐप बना रहे हैं, तो अपने उपयोगकर्ताओं को उनके GitHub खातों का उपयोग करके फायरबेस के साथ प्रमाणित करने का सबसे आसान तरीका फायरबेस जावास्क्रिप्ट एसडीके के साथ साइन-इन प्रवाह को संभालना है। (यदि आप Node.js या अन्य गैर-ब्राउज़र वातावरण में किसी उपयोगकर्ता को प्रमाणित करना चाहते हैं, तो आपको साइन-इन प्रवाह को मैन्युअल रूप से संभालना होगा।)

फायरबेस जावास्क्रिप्ट एसडीके के साथ साइन-इन प्रवाह को संभालने के लिए, इन चरणों का पालन करें:

  1. GitHub प्रदाता ऑब्जेक्ट का एक उदाहरण बनाएं:

    Web modular API

    import { GithubAuthProvider } from "firebase/auth";
    
    const provider = new GithubAuthProvider();

    Web namespaced API

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

    Web modular API

    provider.addScope('repo');

    Web namespaced API

    provider.addScope('repo');
    प्रमाणीकरण प्रदाता दस्तावेज़ देखें.
  3. वैकल्पिक : अतिरिक्त कस्टम OAuth प्रदाता पैरामीटर निर्दिष्ट करें जिन्हें आप OAuth अनुरोध के साथ भेजना चाहते हैं। एक कस्टम पैरामीटर जोड़ने के लिए, आरंभिक प्रदाता पर setCustomParameters एक ऑब्जेक्ट के साथ कॉल करें जिसमें OAuth प्रदाता दस्तावेज़ और संबंधित मान द्वारा निर्दिष्ट कुंजी हो। उदाहरण के लिए:

    Web modular API

    provider.setCustomParameters({
      'allow_signup': 'false'
    });

    Web namespaced API

    provider.setCustomParameters({
      'allow_signup': 'false'
    });
    आरक्षित आवश्यक OAuth पैरामीटर की अनुमति नहीं है और उन्हें अनदेखा कर दिया जाएगा। अधिक विवरण के लिए प्रमाणीकरण प्रदाता संदर्भ देखें।
  4. GitHub प्रदाता ऑब्जेक्ट का उपयोग करके फ़ायरबेस से प्रमाणित करें। आप अपने उपयोगकर्ताओं को पॉप-अप विंडो खोलकर या साइन-इन पेज पर रीडायरेक्ट करके अपने GitHub खातों से साइन इन करने के लिए प्रेरित कर सकते हैं। मोबाइल उपकरणों पर रीडायरेक्ट विधि को प्राथमिकता दी जाती है।
    • पॉप-अप विंडो से साइन इन करने के लिए, signInWithPopup पर कॉल करें:

      Web modular API

      import { getAuth, signInWithPopup, GithubAuthProvider } from "firebase/auth";
      
      const auth = getAuth();
      signInWithPopup(auth, provider)
        .then((result) => {
          // This gives you a GitHub Access Token. You can use it to access the GitHub API.
          const credential = GithubAuthProvider.credentialFromResult(result);
          const token = credential.accessToken;
      
          // 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 = GithubAuthProvider.credentialFromError(error);
          // ...
        });

      Web namespaced API

      firebase
        .auth()
        .signInWithPopup(provider)
        .then((result) => {
          /** @type {firebase.auth.OAuthCredential} */
          var credential = result.credential;
      
          // This gives you a GitHub Access Token. You can use it to access the GitHub 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;
          // ...
        });
      यह भी ध्यान दें कि आप GitHub प्रदाता के OAuth टोकन को पुनः प्राप्त कर सकते हैं जिसका उपयोग GitHub API का उपयोग करके अतिरिक्त डेटा लाने के लिए किया जा सकता है।

      यह वह जगह भी है जहां आप त्रुटियों को पकड़ और संभाल सकते हैं। त्रुटि कोड की सूची के लिए प्रामाणिक संदर्भ दस्तावेज़ पर एक नज़र डालें।

    • साइन-इन पेज पर रीडायरेक्ट करके साइन इन करने के लिए, 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 पर कॉल करके GitHub प्रदाता के OAuth टोकन को भी पुनः प्राप्त कर सकते हैं:

      Web modular API

      import { getAuth, getRedirectResult, GithubAuthProvider } from "firebase/auth";
      
      const auth = getAuth();
      getRedirectResult(auth)
        .then((result) => {
          const credential = GithubAuthProvider.credentialFromResult(result);
          if (credential) {
            // This gives you a GitHub Access Token. You can use it to access the GitHub API.
            const token = credential.accessToken;
            // ...
          }
      
          // 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 = GithubAuthProvider.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 GitHub Access Token. You can use it to access the GitHub 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;
          // ...
        });
      यह वह जगह भी है जहां आप त्रुटियों को पकड़ और संभाल सकते हैं। त्रुटि कोड की सूची के लिए प्रामाणिक संदर्भ दस्तावेज़ पर एक नज़र डालें।

साइन-इन प्रवाह को मैन्युअल रूप से संभालें

आप GitHub OAuth 2.0 एंडपॉइंट पर कॉल करके साइन-इन प्रवाह को संभालकर GitHub खाते का उपयोग करके फायरबेस के साथ प्रमाणित भी कर सकते हैं:

  1. डेवलपर के दस्तावेज़ का पालन करके GitHub प्रमाणीकरण को अपने ऐप में एकीकृत करें। GitHub साइन-इन प्रवाह के अंत में, आपको OAuth 2.0 एक्सेस टोकन प्राप्त होगा।
  2. यदि आपको Node.js एप्लिकेशन पर साइन इन करने की आवश्यकता है, तो Node.js एप्लिकेशन को OAuth एक्सेस टोकन भेजें।
  3. उपयोगकर्ता द्वारा GitHub के साथ सफलतापूर्वक साइन इन करने के बाद, फायरबेस क्रेडेंशियल के लिए OAuth 2.0 एक्सेस टोकन का आदान-प्रदान करें:

    Web modular API

    import { GithubAuthProvider } from "firebase/auth";
    
    const credential = GithubAuthProvider.credential(token);

    Web namespaced API

    var credential = firebase.auth.GithubAuthProvider.credential(token);
  4. फ़ायरबेस क्रेडेंशियल का उपयोग करके फ़ायरबेस से प्रमाणित करें:

    Web modular API

    import { getAuth, signInWithCredential } from "firebase/auth";
    
    // Sign in with the credential from the user.
    const auth = getAuth();
    signInWithCredential(auth, credential)
      .then((result) => {
        // Signed in 
        // ...
      })
      .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;
        // ...
      });

    Web namespaced API

    // Sign in with the credential from the user.
    firebase.auth()
      .signInWithCredential(credential)
      .then((result) => {
        // Signed in 
        // ...
      })
      .catch((error) => {
        // Handle Errors here.
        const errorCode = error.code;
        const errorMessage = error.message;
        // The email of the user's account used.
        const email = error.email;
        // ...
      });

Chrome एक्सटेंशन में फ़ायरबेस से प्रमाणित करें

यदि आप Chrome एक्सटेंशन ऐप बना रहे हैं, तो ऑफ़स्क्रीन दस्तावेज़ मार्गदर्शिका देखें।

अगले कदम

किसी उपयोगकर्ता द्वारा पहली बार साइन इन करने के बाद, एक नया उपयोगकर्ता खाता बनाया जाता है और क्रेडेंशियल्स से लिंक किया जाता है - यानी, उपयोगकर्ता नाम और पासवर्ड, फोन नंबर, या ऑथ प्रदाता जानकारी - जिस उपयोगकर्ता के साथ साइन इन किया जाता है। यह नया खाता आपके फायरबेस प्रोजेक्ट के हिस्से के रूप में संग्रहीत है, और इसका उपयोग आपके प्रोजेक्ट के प्रत्येक ऐप में उपयोगकर्ता की पहचान करने के लिए किया जा सकता है, भले ही उपयोगकर्ता कैसे भी साइन इन करता हो।

  • आपके ऐप्स में, आपके उपयोगकर्ता की प्रामाणिक स्थिति जानने का अनुशंसित तरीका 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.
});