JavaScript का इस्तेमाल करके, फ़ोन नंबर की मदद से Firebase की मदद से पुष्टि करें

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

अपने ऐप्लिकेशन में फ़ोन नंबर से साइन-इन करने का सबसे आसान तरीका FirebaseUI का इस्तेमाल करना है. इसमें ड्रॉप-इन साइन-इन विजेट शामिल होता है, जो फ़ोन नंबर साइन-इन के लिए साइन-इन फ़्लो को लागू करता है. साथ ही, इसमें पासवर्ड के साथ और फ़ेडरेटेड साइन-इन भी होता है. इस दस्तावेज़ में Firebase SDK टूल का इस्तेमाल करके फ़ोन नंबर साइन-इन फ़्लो लागू करने का तरीका बताया गया है.

वेब कंटेनर इंस्टॉल करने से पहले

अगर आपने पहले से ऐसा नहीं किया है, तो Firebase कंसोल से अपने प्रोजेक्ट में शुरू करने वाले स्निपेट को कॉपी करें. इसके बारे में अपने JavaScript प्रोजेक्ट में Firebase जोड़ें सेक्शन में बताया गया है.

सुरक्षा से जुड़ी समस्याएं

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

अगर आपके ऐप्लिकेशन में फ़ोन नंबर के ज़रिए साइन इन करने की सुविधा का इस्तेमाल किया जाता है, तो आपको साइन-इन करने के ज़्यादा सुरक्षित तरीकों के साथ-साथ इसकी सुविधा भी देनी चाहिए. साथ ही, उपयोगकर्ताओं को फ़ोन नंबर से साइन-इन करने के सुरक्षित तरीकों के बारे में जानकारी देनी चाहिए.

अपने Firebase प्रोजेक्ट के लिए, फ़ोन नंबर से साइन-इन करने की सुविधा चालू करना

उपयोगकर्ताओं को एसएमएस से साइन इन करने के लिए, आपको सबसे पहले अपने Firebase प्रोजेक्ट के लिए, फ़ोन नंबर से साइन इन करने का तरीका चालू करना होगा:

  1. Firebase कंसोल में, पुष्टि करने की सुविधा वाला सेक्शन खोलें.
  2. साइन इन करने का तरीका पेज पर, फ़ोन नंबर से साइन इन करने का तरीका चालू करें.
  3. उसी पेज पर, अगर आपके ऐप्लिकेशन को होस्ट करने वाला डोमेन, OAuth रीडायरेक्ट डोमेन सेक्शन में शामिल नहीं है, तो अपना डोमेन जोड़ें.

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

reCAPTCHA की पुष्टि करने वाला प्रोग्राम सेट अप करें

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

आपको मैन्युअल तरीके से reCAPTCHA क्लाइंट सेट अप करने की ज़रूरत नहीं है. Firebase SDK टूल के RecaptchaVerifier ऑब्जेक्ट का इस्तेमाल करने पर, Firebase अपने-आप सभी ज़रूरी क्लाइंट कुंजियां और सीक्रेट बनाता और मैनेज करता है.

RecaptchaVerifier ऑब्जेक्ट, न दिखने वाले reCAPTCHA के साथ काम करता है. इसमें, उपयोगकर्ता की पुष्टि की जा सकती है. इसके लिए, उपयोगकर्ता को कोई कार्रवाई करने की ज़रूरत नहीं पड़ती. इसके अलावा, reCAPTCHA विजेट की मदद से भी, उपयोगकर्ता की पुष्टि की जा सकती है, जिसे पूरा करने के लिए उपयोगकर्ता को हमेशा इंटरैक्शन की ज़रूरत होती है.

रेंडर किए गए reCAPTCHA को, उपयोगकर्ता की पसंद के हिसाब से स्थानीय भाषा में बदला जा सकता है. इसके लिए, reCAPTCHA को रेंडर करने से पहले, पुष्टि के इंस्टेंस पर भाषा कोड को अपडेट करना होगा. ऊपर बताया गया स्थानीय भाषा के मुताबिक, उपयोगकर्ता को भेजे गए एसएमएस मैसेज पर भी लागू होगा. इसमें पुष्टि करने वाला कोड शामिल होगा.

वेब मॉड्यूलर एपीआई

import { getAuth } from "firebase/auth";

const auth = getAuth();
auth.languageCode = 'it';
// To apply the default browser preference instead of explicitly setting it.
// auth.useDeviceLanguage();

वेब नेमस्पेसेड एपीआई

firebase.auth().languageCode = 'it';
// To apply the default browser preference instead of explicitly setting it.
// firebase.auth().useDeviceLanguage();

दिखाई न देने वाले reCAPTCHA का इस्तेमाल करें

दिखाई न देने वाले reCAPTCHA का इस्तेमाल करने के लिए, invisible पर size पैरामीटर सेट करके RecaptchaVerifier ऑब्जेक्ट बनाएं. इस ऑब्जेक्ट में उस बटन का आईडी बताएं जिससे आपका साइन-इन फ़ॉर्म सबमिट होता है. उदाहरण के लिए:

वेब मॉड्यूलर एपीआई

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

const auth = getAuth();
window.recaptchaVerifier = new RecaptchaVerifier(auth, 'sign-in-button', {
  'size': 'invisible',
  'callback': (response) => {
    // reCAPTCHA solved, allow signInWithPhoneNumber.
    onSignInSubmit();
  }
});

वेब नेमस्पेसेड एपीआई

window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('sign-in-button', {
  'size': 'invisible',
  'callback': (response) => {
    // reCAPTCHA solved, allow signInWithPhoneNumber.
    onSignInSubmit();
  }
});

reCAPTCHA विजेट का इस्तेमाल करें

दिखने वाले reCAPTCHA विजेट का इस्तेमाल करने के लिए, अपने पेज पर विजेट शामिल करने के लिए एक एलिमेंट बनाएं. इसके बाद, ऐसा करने पर कंटेनर का आईडी बताकर, एक RecaptchaVerifier ऑब्जेक्ट बनाएं. उदाहरण के लिए:

वेब मॉड्यूलर एपीआई

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

const auth = getAuth();
window.recaptchaVerifier = new RecaptchaVerifier(auth, 'recaptcha-container', {});

वेब नेमस्पेसेड एपीआई

window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('recaptcha-container');

ज़रूरी नहीं: reCAPTCHA पैरामीटर के बारे में बताएं

इसके अलावा, आपके पास RecaptchaVerifier ऑब्जेक्ट पर कॉलबैक फ़ंक्शन सेट करने का विकल्प होता है. इन फ़ंक्शन को तब कॉल किया जाता है, जब उपयोगकर्ता के फ़ॉर्म सबमिट करने से पहले ही reCAPTCHA की समयसीमा खत्म हो जाती है या reCAPTCHA की समयसीमा खत्म हो जाती है:

वेब मॉड्यूलर एपीआई

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

const auth = getAuth();
window.recaptchaVerifier = new RecaptchaVerifier(auth, 'recaptcha-container', {
  'size': 'normal',
  'callback': (response) => {
    // reCAPTCHA solved, allow signInWithPhoneNumber.
    // ...
  },
  'expired-callback': () => {
    // Response expired. Ask user to solve reCAPTCHA again.
    // ...
  }
});

वेब नेमस्पेसेड एपीआई

window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('recaptcha-container', {
  'size': 'normal',
  'callback': (response) => {
    // reCAPTCHA solved, allow signInWithPhoneNumber.
    // ...
  },
  'expired-callback': () => {
    // Response expired. Ask user to solve reCAPTCHA again.
    // ...
  }
});

ज़रूरी नहीं: reCAPTCHA को पहले से रेंडर करना

अगर आपको साइन इन का अनुरोध सबमिट करने से पहले reCAPTCHA को प्री-रेंडर करना है, तो render को कॉल करें:

वेब मॉड्यूलर एपीआई

recaptchaVerifier.render().then((widgetId) => {
  window.recaptchaWidgetId = widgetId;
});

वेब नेमस्पेसेड एपीआई

recaptchaVerifier.render().then((widgetId) => {
  window.recaptchaWidgetId = widgetId;
});

render समस्या हल होने के बाद, आपको reCAPTCHA का विजेट आईडी मिलेगा. इसका इस्तेमाल करके, re कैप्चा एपीआई को कॉल किया जा सकता है:

वेब मॉड्यूलर एपीआई

const recaptchaResponse = grecaptcha.getResponse(recaptchaWidgetId);

वेब नेमस्पेसेड एपीआई

const recaptchaResponse = grecaptcha.getResponse(recaptchaWidgetId);

उपयोगकर्ता के फ़ोन पर पुष्टि करने के लिए कोड भेजें

फ़ोन नंबर से साइन-इन करने के लिए, उपयोगकर्ता को ऐसा इंटरफ़ेस दिखाएं जो उसे अपना फ़ोन नंबर देने के लिए कहता हो. इसके बाद, signInWithPhoneNumber पर कॉल करके अनुरोध करें कि Firebase, मैसेज (एसएमएस) के ज़रिए उपयोगकर्ता के फ़ोन पर पुष्टि करने वाला कोड भेजे:

  1. उपयोगकर्ता का फ़ोन नंबर पाएं.

    कानूनी समझौते की शर्तें अलग-अलग हो सकती हैं. हालांकि, सबसे सही तरीका यह है कि अपने उपयोगकर्ताओं के लिए उम्मीदें तय करने के लिए, उन्हें यह जानकारी दी जानी चाहिए कि अगर वे फ़ोन से साइन-इन की सुविधा इस्तेमाल करते हैं, तो उन्हें पुष्टि के लिए एक मैसेज (एसएमएस) मिल सकता है. साथ ही, उन्हें पुष्टि करने के लिए एक एसएमएस मिल सकता है. साथ ही, आपको सामान्य दरें लागू होंगी.

  2. signInWithPhoneNumber को कॉल करें और उसे उपयोगकर्ता का फ़ोन नंबर और पहले बनाया गया RecaptchaVerifier बताएं.

    वेब मॉड्यूलर एपीआई

    import { getAuth, signInWithPhoneNumber } from "firebase/auth";
    
    const phoneNumber = getPhoneNumberFromUserInput();
    const appVerifier = window.recaptchaVerifier;
    
    const auth = getAuth();
    signInWithPhoneNumber(auth, phoneNumber, appVerifier)
        .then((confirmationResult) => {
          // SMS sent. Prompt user to type the code from the message, then sign the
          // user in with confirmationResult.confirm(code).
          window.confirmationResult = confirmationResult;
          // ...
        }).catch((error) => {
          // Error; SMS not sent
          // ...
        });

    वेब नेमस्पेसेड एपीआई

    const phoneNumber = getPhoneNumberFromUserInput();
    const appVerifier = window.recaptchaVerifier;
    firebase.auth().signInWithPhoneNumber(phoneNumber, appVerifier)
        .then((confirmationResult) => {
          // SMS sent. Prompt user to type the code from the message, then sign the
          // user in with confirmationResult.confirm(code).
          window.confirmationResult = confirmationResult;
          // ...
        }).catch((error) => {
          // Error; SMS not sent
          // ...
        });
    अगर signInWithPhoneNumber की वजह से गड़बड़ी होती है, तो reCAPTCHA को रीसेट करें, ताकि उपयोगकर्ता फिर से कोशिश कर सके:
    grecaptcha.reset(window.recaptchaWidgetId);
    
    // Or, if you haven't stored the widget ID:
    window.recaptchaVerifier.render().then(function(widgetId) {
      grecaptcha.reset(widgetId);
    });
    

signInWithPhoneNumber तरीका, उपयोगकर्ता को reCAPTCHA चैलेंज देता है. अगर उपयोगकर्ता इस चैलेंज को पूरा कर लेता है, तो अनुरोध है कि Firebase से पुष्टि करने की सुविधा से, उपयोगकर्ता के फ़ोन पर पुष्टि करने के लिए कोड वाला एक मैसेज (एसएमएस) भेजा जाए.

पुष्टि करने के कोड से उपयोगकर्ता को साइन इन करें

signInWithPhoneNumber पर कॉल पूरा होने के बाद, उपयोगकर्ता को पुष्टि करने वाला वह कोड डालने के लिए कहें जो उन्हें एसएमएस से मिला है. इसके बाद, उपयोगकर्ता को साइन इन करने के लिए, उस ConfirmationResult ऑब्जेक्ट का confirm तरीका इस्तेमाल करें जिसे signInWithPhoneNumber के फ़ुलफ़िलमेंट हैंडलर (इसका then ब्लॉक) को भेजा गया था. उदाहरण के लिए:

वेब मॉड्यूलर एपीआई

const code = getCodeFromUserInput();
confirmationResult.confirm(code).then((result) => {
  // User signed in successfully.
  const user = result.user;
  // ...
}).catch((error) => {
  // User couldn't sign in (bad verification code?)
  // ...
});

वेब नेमस्पेसेड एपीआई

const code = getCodeFromUserInput();
confirmationResult.confirm(code).then((result) => {
  // User signed in successfully.
  const user = result.user;
  // ...
}).catch((error) => {
  // User couldn't sign in (bad verification code?)
  // ...
});

अगर confirm को कॉल पूरा हो जाता है, तो इसका मतलब है कि उपयोगकर्ता ने साइन इन कर लिया है.

मध्यवर्ती AuthCredential ऑब्जेक्ट पाएं

अगर आपको उपयोगकर्ता के खाते के लिए AuthCredential ऑब्जेक्ट चाहिए, तो confirm को कॉल करने के बजाय, पुष्टि के नतीजे से पुष्टि करने वाला कोड और PhoneAuthProvider.credential को पास करें:

var credential = firebase.auth.PhoneAuthProvider.credential(confirmationResult.verificationId, code);

इसके बाद, उपयोगकर्ता के क्रेडेंशियल से भी साइन इन किया जा सकता है:

firebase.auth().signInWithCredential(credential);

काल्पनिक फ़ोन नंबर के साथ परीक्षण करें

Firebase कंसोल के ज़रिए, डेवलपमेंट के लिए काल्पनिक फ़ोन नंबर सेट अप किए जा सकते हैं. काल्पनिक फ़ोन नंबरों के साथ टेस्ट करने के ये फ़ायदे हैं:

  • इस्तेमाल करने का कोटा खर्च किए बिना, फ़ोन नंबर की पुष्टि करने की सुविधा की जांच करें.
  • वास्तविक एसएमएस मैसेज भेजे बिना ही फ़ोन नंबर की पुष्टि करके देखें.
  • थ्रॉटल किए बिना, एक ही फ़ोन नंबर से लगातार टेस्ट करें. इससे, अगर समीक्षक ने जांच के लिए एक ही फ़ोन नंबर का इस्तेमाल किया है, तो ऐप स्टोर की समीक्षा की प्रक्रिया के दौरान, आवेदन अस्वीकार किए जाने का जोखिम कम हो जाता है.
  • ऐप्लिकेशन की डेवलपमेंट एनवायरमेंट में आसानी से जांच करें. इसके लिए आपको अलग से कुछ नहीं करना पड़ता. जैसे, Google Play services के बिना, iOS सिम्युलेटर या Android एम्युलेटर में ऐप्लिकेशन डेवलप करने की क्षमता.
  • इंटिग्रेशन टेस्ट में सुरक्षा जांच से बचने की ज़रूरत नहीं होती. आम तौर पर, यह जांच प्रोडक्शन एनवायरमेंट में, असली फ़ोन नंबर पर लागू होती हैं.

काल्पनिक फ़ोन नंबर इन शर्तों के मुताबिक होने चाहिए:

  1. पक्का करें कि आप ऐसे फ़ोन नंबर इस्तेमाल करें जो असल में काल्पनिक हैं और जो पहले से मौजूद नहीं हैं. Firebase से पुष्टि करने की सुविधा से, ऐसे मौजूदा फ़ोन नंबरों को टेस्ट नंबर के तौर पर सेट करने की अनुमति नहीं मिलती जिनका इस्तेमाल असल उपयोगकर्ता करते हैं. अमेरिका के टेस्ट फ़ोन नंबर के तौर पर, इससे पहले 555 नंबर का इस्तेमाल किया जा सकता है. उदाहरण के लिए: +1 650-555-3434
  2. फ़ोन नंबर लंबाई और दूसरी चीज़ों को ध्यान में रखते हुए सही तरीके से फ़ॉर्मैट किए जाने चाहिए. उन्हें अब भी उसी तरह से पुष्टि की जाएगी जिस तरह किसी असली उपयोगकर्ता के फ़ोन नंबर की पुष्टि की जाती है.
  3. डेवलपमेंट के लिए, ज़्यादा से ज़्यादा 10 फ़ोन नंबर जोड़े जा सकते हैं.
  4. ऐसे टेस्ट फ़ोन नंबर/कोड का इस्तेमाल करें जिनका अनुमान लगाना मुश्किल हो और जिन्हें बार-बार बदला जा सके.

काल्पनिक फ़ोन नंबर और पुष्टि करने के लिए कोड बनाएं

  1. Firebase कंसोल में, पुष्टि करने की सुविधा सेक्शन खोलें.
  2. साइन इन करने का तरीका टैब में, अगर आपने पहले से फ़ोन की सेवा देने वाली कंपनी को चालू नहीं किया है, तो उसे चालू करें.
  3. टेस्टिंग के लिए फ़ोन नंबर अकॉर्डियन मेन्यू खोलें.
  4. वह फ़ोन नंबर दें जिसकी आपको जांच करनी है. उदाहरण के लिए: +1 650-555-3434.
  5. उस खास नंबर के लिए छह अंकों का पुष्टि करने वाला कोड दें, जैसे कि: 654321.
  6. नंबर जोड़ें. अगर ज़रूरत हो, तो फ़ोन नंबर और उससे जुड़े कोड को मिटाने के लिए, उससे जुड़ी लाइन पर कर्सर घुमाएं और ट्रैश आइकॉन पर क्लिक करें.

मैन्युअल तरीके से जांच करने की सुविधा

अपने ऐप्लिकेशन में, किसी काल्पनिक फ़ोन नंबर का इस्तेमाल सीधे तौर पर शुरू किया जा सकता है. इससे, डेवलपमेंट स्टेज के दौरान मैन्युअल तरीके से जांच की जा सकती है. इसके लिए, कोटा की समस्याओं या थ्रॉटलिंग की ज़रूरत नहीं पड़ती. Google Play services को इंस्टॉल किए बिना भी, सीधे iOS सिम्युलेटर या Android Emulator से भी जांच की जा सकती है.

जब आप काल्पनिक फ़ोन नंबर देते हैं और पुष्टि करने के लिए कोड भेजते हैं, तो कोई मैसेज (एसएमएस) नहीं भेजा जाता है. इसके बजाय, साइन इन करने के लिए, आपको पहले से कॉन्फ़िगर किया गया पुष्टि करने वाला कोड देना होगा.

साइन-इन पूरा होने पर, उस फ़ोन नंबर से एक Firebase उपयोगकर्ता बन जाता है. इस उपयोगकर्ता का व्यवहार और प्रॉपर्टी बिलकुल असली फ़ोन नंबर इस्तेमाल करने वाले व्यक्ति की तरह ही होती हैं और वह रीयलटाइम डेटाबेस/Cloud Firestore और दूसरी सेवाओं को भी इसी तरह ऐक्सेस कर सकता है. इस प्रोसेस के दौरान बनाए गए आईडी टोकन का हस्ताक्षर वही होता है जो फ़ोन नंबर इस्तेमाल करने वाले किसी व्यक्ति का होता है.

दूसरा विकल्प यह है कि अगर आप ऐक्सेस पर और पाबंदी लगाना चाहते हैं, तो इन उपयोगकर्ताओं को नकली उपयोगकर्ताओं के रूप में अलग करने के लिए पसंद के मुताबिक दावों के ज़रिए टेस्ट भूमिका सेट करें.

इंटिग्रेशन की जांच करना

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

वेब पर, firebase.auth.RecaptchaVerifier को रेंडर करने से पहले, appVerificationDisabledForTesting को true पर सेट करें. इससे reCAPTCHA की समस्या अपने-आप ठीक हो जाती है और फ़ोन नंबर को मैन्युअल तरीके से हल किए बिना ही आगे बढ़ाया जा सकता है. ध्यान दें कि reCAPTCHA की सुविधा बंद होने पर भी, किसी गैर-काल्पनिक फ़ोन नंबर का इस्तेमाल करके साइन इन नहीं किया जा सकता. इस एपीआई के साथ सिर्फ़ काल्पनिक फ़ोन नंबर इस्तेमाल किए जा सकते हैं.

// Turn off phone auth app verification.
firebase.auth().settings.appVerificationDisabledForTesting = true;

var phoneNumber = "+16505554567";
var testVerificationCode = "123456";

// This will render a fake reCAPTCHA as appVerificationDisabledForTesting is true.
// This will resolve after rendering without app verification.
var appVerifier = new firebase.auth.RecaptchaVerifier('recaptcha-container');
// signInWithPhoneNumber will call appVerifier.verify() which will resolve with a fake
// reCAPTCHA response.
firebase.auth().signInWithPhoneNumber(phoneNumber, appVerifier)
    .then(function (confirmationResult) {
      // confirmationResult can resolve with the fictional testVerificationCode above.
      return confirmationResult.confirm(testVerificationCode)
    }).catch(function (error) {
      // Error; SMS not sent
      // ...
    });

ऐप्लिकेशन की पुष्टि की सुविधा बंद होने पर, दिखने और न दिखने वाले reCAPTCHA ऐप्लिकेशन की पुष्टि करने वाली सुविधाएं अलग तरीके से काम करती हैं:

  • दिखने वाला reCAPTCHA: जब दिखने वाला reCAPTCHA appVerifier.render() के ज़रिए रेंडर होता है, तो यह एक सेकंड की देरी के बाद अपने-आप ठीक हो जाता है. यह ठीक वैसे ही है जैसे उपयोगकर्ता, रेंडरिंग के तुरंत बाद reCAPTCHA पर क्लिक करता है. reCAPTCHA के जवाब की समयसीमा कुछ समय बाद खत्म हो जाएगी. इसके बाद, समस्या अपने-आप हल हो जाएगी.
  • न दिखने वाला reCAPTCHA: दिखने वाला reCAPTCHA, रेंडरिंग की समस्या अपने-आप ठीक नहीं करता. इसके बजाय, यह appVerifier.verify()कॉल या reCAPTCHA के बटन ऐंकर पर कुछ सेकंड की देरी के बाद क्लिक किया जाता है. इसी तरह, कुछ समय बाद रिस्पॉन्स दिखना बंद हो जाएगा. इसका हल appVerifier.verify() कॉल के बाद या reCAPTCHA के बटन ऐंकर पर फिर से क्लिक करने के बाद ही अपने-आप ठीक हो जाएगा.

जब भी कोई मॉक reCAPTCHA ठीक होता है, तब उससे जुड़ा कॉलबैक फ़ंक्शन, नकली रिस्पॉन्स के साथ उम्मीद के मुताबिक ट्रिगर होता है. अगर समयसीमा खत्म होने के समय का कॉलबैक भी दिया गया है, तो यह समयसीमा खत्म होने पर ट्रिगर होगा.

अगले चरण

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

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

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

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

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

वेब मॉड्यूलर एपीआई

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

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

वेब नेमस्पेसेड एपीआई

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