JavaScript में Twitter का इस्तेमाल करके पुष्टि करें

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

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

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

Firebase SDK टूल की मदद से साइन-इन की प्रोसेस को मैनेज करना

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

Firebase JavaScript SDK टूल से साइन-इन फ़्लो को मैनेज करने के लिए, इन निर्देशों का पालन करें कदम:

  1. Twitter कंपनी के ऑब्जेक्ट का इंस्टेंस बनाएं:

    Web

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

    Web

    var provider = new firebase.auth.TwitterAuthProvider();
  2. ज़रूरी नहीं: सेवा देने वाली कंपनी के OAuth फ़्लो को उपयोगकर्ता की पसंद के मुताबिक बनाने के लिए मौजूदा कस्टम OAuth पैरामीटर को साफ़ तौर पर पास किए बिना, इस भाषा में बदलाव करें 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();
  3. ज़रूरी नहीं: OAuth की सेवा देने वाली कंपनी के अन्य पैरामीटर तय करना जिसे आपको OAuth अनुरोध की मदद से भेजना है. कस्टम पैरामीटर जोड़ने के लिए, कुंजी वाले ऑब्जेक्ट के साथ शुरू की गई कंपनी के लिए setCustomParameters जैसा कि OAuth प्रोवाइडर के दस्तावेज़ और संबंधित वैल्यू में बताया गया है. उदाहरण के लिए:

    Web

    provider.setCustomParameters({
      'lang': 'es'
    });

    Web

    provider.setCustomParameters({
      'lang': 'es'
    });
    रिज़र्व किए गए ज़रूरी OAuth पैरामीटर की अनुमति नहीं है. इन्हें अनदेखा कर दिया जाएगा. ज़्यादा जानकारी के लिए, पुष्टि करने वाली कंपनी का संदर्भ देखें.
  4. Twitter प्रोवाइडर ऑब्जेक्ट का इस्तेमाल करके, Firebase से पुष्टि करें. आप अपने उपयोगकर्ताओं को उनके Twitter खातों से साइन इन करने के लिए कहें. पॉप-अप विंडो पर क्लिक करें या साइन-इन पेज पर रीडायरेक्ट करें. रीडायरेक्ट करने का तरीका मोबाइल डिवाइस पर प्राथमिकता दी जाती है.
    • पॉप-अप विंडो की मदद से साइन इन करने के लिए, signInWithPopup पर कॉल करें:

      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;
          // ...
        });
      यह भी ध्यान रखें कि आपके पास Twitter की सेवा देने वाली कंपनी का OAuth टोकन वापस पाने का विकल्प है. इसका इस्तेमाल, Twitter API का इस्तेमाल करके ज़्यादा डेटा फ़ेच करने के लिए किया जा सकता है.

      यहां पर गड़बड़ियों का पता लगाकर उन्हें ठीक भी किया जा सकता है. गड़बड़ी कोड की सूची के लिए, आधिकारिक रेफ़रंस दस्तावेज़ पर एक नज़र डालें.

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

      Web

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

      Web

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

      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;
          // ...
        });
      यहां पर गड़बड़ियों का पता लगाकर उन्हें ठीक भी किया जा सकता है. गड़बड़ी कोड की सूची के लिए, आधिकारिक रेफ़रंस दस्तावेज़ पर एक नज़र डालें.

साइन-इन की प्रोसेस को मैन्युअल तरीके से मैनेज करना

आप Twitter OAuth एंडपॉइंट पर कॉल करके साइन-इन फ़्लो:

  1. यहां दिए गए निर्देशों का पालन करके, अपने ऐप्लिकेशन में Twitter की पुष्टि करने की प्रक्रिया को इंटिग्रेट करें डेवलपर के दस्तावेज़ में दिए गए हैं. Twitter पर साइन-इन करने की प्रोसेस के आखिर में, को एक OAuth ऐक्सेस टोकन और एक OAuth सीक्रेट मिलेगा.
  2. अगर आपको Node.js ऐप्लिकेशन पर साइन इन करना है, तो OAuth का ऐक्सेस भेजें टोकन और OAuth सीक्रेट को Node.js ऐप्लिकेशन पर ट्रांसफ़र करेगा.
  3. जब कोई उपयोगकर्ता Twitter से साइन इन कर लेता है, तब OAuth के ऐक्सेस को एक्सचेंज करें Firebase क्रेडेंशियल के लिए टोकन और OAuth सीक्रेट:
    var credential = firebase.auth.TwitterAuthProvider.credential(token, secret);
    
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  4. Firebase क्रेडेंशियल का इस्तेमाल करके, Firebase से पुष्टि करें:

    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 एक्सटेंशन में Firebase की मदद से पुष्टि करें

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

अगले चरण

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

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

  • आपके Firebase रीयल टाइम डेटाबेस और Cloud Storage में सुरक्षा नियम, तो 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.
});