उपयोगकर्ता के फ़ोन पर एसएमएस भेजकर, उसे साइन इन करने के लिए Firebase Authentication का इस्तेमाल किया जा सकता है. उपयोगकर्ता, एसएमएस में मिले एक बार इस्तेमाल किए जा सकने वाले कोड का इस्तेमाल करके साइन इन करता है.
अपने ऐप्लिकेशन में फ़ोन नंबर से साइन-इन करने की सुविधा जोड़ने का सबसे आसान तरीका है कि आप FirebaseUI का इस्तेमाल करें. इसमें एक ड्रॉप-इन साइन-इन विजेट शामिल होता है. यह फ़ोन नंबर से साइन-इन करने के साथ-साथ, पासवर्ड और फ़ेडरेटेड साइन-इन के लिए साइन-इन फ़्लो लागू करता है. इस दस्तावेज़ में, Firebase SDK का इस्तेमाल करके फ़ोन नंबर से साइन-इन करने की सुविधा लागू करने का तरीका बताया गया है.
शुरू करने से पहले
अगर आपने पहले से ही ऐसा नहीं किया है, तो Firebase कंसोल से, अपने JavaScript प्रोजेक्ट में Firebase जोड़ें में बताए गए तरीके से, अपने प्रोजेक्ट में इनिशियलाइज़ेशन स्निपेट कॉपी करें.सुरक्षा से जुड़ी समस्याएं
सिर्फ़ फ़ोन नंबर का इस्तेमाल करके पुष्टि करना आसान है, लेकिन यह उपलब्ध अन्य तरीकों की तुलना में कम सुरक्षित है. ऐसा इसलिए, क्योंकि फ़ोन नंबर का मालिकाना हक उपयोगकर्ताओं के बीच आसानी से ट्रांसफ़र किया जा सकता है. इसके अलावा, जिन डिवाइसों में एक से ज़्यादा उपयोगकर्ता प्रोफ़ाइल होती हैं उनमें एसएमएस पाने वाला कोई भी उपयोगकर्ता, डिवाइस के फ़ोन नंबर का इस्तेमाल करके किसी खाते में साइन इन कर सकता है.
अगर आपके ऐप्लिकेशन में फ़ोन नंबर के ज़रिए साइन-इन करने की सुविधा उपलब्ध है, तो आपको इसे साइन-इन करने के ज़्यादा सुरक्षित तरीकों के साथ उपलब्ध कराना चाहिए. साथ ही, उपयोगकर्ताओं को फ़ोन नंबर के ज़रिए साइन-इन करने से जुड़ी सुरक्षा के बारे में बताना चाहिए.
अपने Firebase प्रोजेक्ट के लिए, फ़ोन नंबर से साइन-इन करने की सुविधा चालू करना
एसएमएस से उपयोगकर्ताओं को साइन इन करने की सुविधा देने के लिए, आपको पहले अपने Firebase प्रोजेक्ट के लिए फ़ोन नंबर से साइन इन करने का तरीका चालू करना होगा:
- Firebase कंसोल में, Authentication सेक्शन खोलें.
- साइन-इन करने का तरीका पेज पर, फ़ोन नंबर से साइन-इन करने का तरीका चालू करें.
- ज़रूरी नहीं: सेटिंग पेज पर, उन देशों/इलाकों के लिए नीति सेट करें जहां आपको एसएमएस भेजने की अनुमति देनी है या नहीं देनी है. एसएमएस भेजने के लिए देश/इलाके के हिसाब से नीति सेट करने से, आपके ऐप्लिकेशन को एसएमएस के गलत इस्तेमाल से बचाया जा सकता है.
- अगर आपको ऐप्लिकेशन होस्ट करने वाले डोमेन का नाम, उसी पेज पर OAuth रीडायरेक्ट डोमेन सेक्शन में नहीं दिखता है, तो अपना डोमेन जोड़ें. ध्यान दें कि फ़ोन से पुष्टि करने के लिए, localhost को होस्ट किए गए डोमेन के तौर पर इस्तेमाल करने की अनुमति नहीं है.
reCAPTCHA की पुष्टि करने वाले टूल को सेट अप करना
उपयोगकर्ताओं को उनके फ़ोन नंबर से साइन इन करने की सुविधा देने से पहले, आपको Firebase का reCAPTCHA verifier सेट अप करना होगा. Firebase, reCAPTCHA का इस्तेमाल करके गलत इस्तेमाल को रोकता है. जैसे, यह पक्का करके कि फ़ोन नंबर की पुष्टि करने का अनुरोध, आपके ऐप्लिकेशन के उन डोमेन में से किसी एक से आया हो जिन्हें अनुमति मिली है.
आपको reCAPTCHA क्लाइंट को मैन्युअल तरीके से सेट अप करने की ज़रूरत नहीं है. Firebase SDK के RecaptchaVerifier
ऑब्जेक्ट का इस्तेमाल करने पर, Firebase अपने-आप ज़रूरी क्लाइंट कुंजियां और सीक्रेट बनाता है और उन्हें मैनेज करता है.
RecaptchaVerifier
ऑब्जेक्ट, इनविज़िबल reCAPTCHA के साथ काम करता है. यह अक्सर उपयोगकर्ता की पुष्टि कर सकता है. इसके लिए, उपयोगकर्ता को कोई कार्रवाई करने की ज़रूरत नहीं होती. साथ ही, यह reCAPTCHA विजेट के साथ भी काम करता है. इसे पूरा करने के लिए, उपयोगकर्ता को हमेशा इंटरैक्ट करना पड़ता है.
reCAPTCHA को रेंडर करने से पहले, Auth इंस्टेंस पर भाषा कोड अपडेट करके, रेंडर किए गए reCAPTCHA को उपयोगकर्ता की पसंद के हिसाब से बनाया जा सकता है. ऊपर बताई गई स्थानीय भाषा की सेटिंग, उपयोगकर्ता को भेजे गए उस एसएमएस पर भी लागू होगी जिसमें पुष्टि करने के लिए कोड शामिल होता है.
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();
दिखाई न देने वाले reCAPTCHA का इस्तेमाल करना
दिखाई न देने वाले reCAPTCHA का इस्तेमाल करने के लिए, RecaptchaVerifier
ऑब्जेक्ट बनाएं. इसमें size
पैरामीटर को invisible
पर सेट करें. साथ ही, उस बटन का आईडी डालें जो आपके साइन-इन फ़ॉर्म को सबमिट करता है. उदाहरण के लिए:
Web
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(); } });
Web
window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('sign-in-button', { 'size': 'invisible', 'callback': (response) => { // reCAPTCHA solved, allow signInWithPhoneNumber. onSignInSubmit(); } });
reCAPTCHA विजेट का इस्तेमाल करना
दिखने वाले reCAPTCHA विजेट का इस्तेमाल करने के लिए, अपने पेज पर एक ऐसा एलिमेंट बनाएं जिसमें विजेट शामिल हो. इसके बाद, एक RecaptchaVerifier
ऑब्जेक्ट बनाएं. ऐसा करते समय, कंटेनर का आईडी डालें. उदाहरण के लिए:
Web
import { getAuth, RecaptchaVerifier } from "firebase/auth"; const auth = getAuth(); window.recaptchaVerifier = new RecaptchaVerifier(auth, 'recaptcha-container', {});
Web
window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('recaptcha-container');
ज़रूरी नहीं: reCAPTCHA पैरामीटर तय करना
आपके पास RecaptchaVerifier
ऑब्जेक्ट पर कॉलबैक फ़ंक्शन सेट करने का विकल्प होता है. जब उपयोगकर्ता reCAPTCHA को हल करता है या उपयोगकर्ता के फ़ॉर्म सबमिट करने से पहले reCAPTCHA की समयसीमा खत्म हो जाती है, तब इन फ़ंक्शन को कॉल किया जाता है:
Web
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. // ... } });
Web
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
को कॉल करें:
Web
recaptchaVerifier.render().then((widgetId) => { window.recaptchaWidgetId = widgetId; });
Web
recaptchaVerifier.render().then((widgetId) => { window.recaptchaWidgetId = widgetId; });
render
हल होने के बाद, आपको reCAPTCHA का विजेट आईडी मिलता है. इसका इस्तेमाल reCAPTCHA API को कॉल करने के लिए किया जा सकता है:
Web
const recaptchaResponse = grecaptcha.getResponse(recaptchaWidgetId);
Web
const recaptchaResponse = grecaptcha.getResponse(recaptchaWidgetId);
उपयोगकर्ता के फ़ोन पर पुष्टि करने के लिए कोड भेजना
फ़ोन नंबर से साइन इन करने की सुविधा शुरू करने के लिए, उपयोगकर्ता को एक ऐसा इंटरफ़ेस दिखाएं जिसमें उनसे अपना फ़ोन नंबर देने के लिए कहा गया हो. इसके बाद, signInWithPhoneNumber
को कॉल करके अनुरोध करें कि Firebase, उपयोगकर्ता के फ़ोन पर एसएमएस के ज़रिए पुष्टि करने का कोड भेजे:
-
उपयोगकर्ता का फ़ोन नंबर पाएं.
कानूनी शर्तें अलग-अलग होती हैं. हालांकि, सबसे सही तरीका यह है कि आप अपने उपयोगकर्ताओं को यह बताएं कि अगर वे फ़ोन नंबर से साइन इन करने की सुविधा का इस्तेमाल करते हैं, तो उन्हें पुष्टि करने के लिए एक एसएमएस मिल सकता है. साथ ही, उन पर सामान्य शुल्क लागू होंगे.
signInWithPhoneNumber
को कॉल करें. इसमें उपयोगकर्ता का फ़ोन नंबर और पहले बनाया गयाRecaptchaVerifier
पास करें.Web
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 // ... });
Web
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 Authentication से अनुरोध किया जाता है कि वह उपयोगकर्ता के फ़ोन पर, पुष्टि करने के लिए कोड वाला एसएमएस मैसेज भेजे.
पुष्टि करने के लिए मिले कोड का इस्तेमाल करके, उपयोगकर्ता को साइन इन करना
signInWithPhoneNumber
को कॉल करने के बाद, उपयोगकर्ता को एसएमएस से मिला पुष्टि करने वाला कोड टाइप करने के लिए कहें. इसके बाद, उपयोगकर्ता को साइन इन कराएं. इसके लिए, ConfirmationResult
ऑब्जेक्ट के confirm
तरीके को कोड पास करें. यह ऑब्जेक्ट, signInWithPhoneNumber
के फ़ुलफ़िलमेंट हैंडलर (यानी कि इसके then
ब्लॉक) को पास किया गया था. उदाहरण के लिए:
Web
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?) // ... });
Web
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 कंसोल की मदद से, डेवलपमेंट के लिए काल्पनिक फ़ोन नंबर सेट अप किए जा सकते हैं. फ़र्ज़ी फ़ोन नंबरों का इस्तेमाल करके टेस्टिंग करने से ये फ़ायदे मिलते हैं:
- इस्तेमाल के कोटे का इस्तेमाल किए बिना, फ़ोन नंबर से पुष्टि करने की सुविधा को टेस्ट करें.
- असल मैसेज भेजे बिना, फ़ोन नंबर की पुष्टि करने की सुविधा को टेस्ट करें.
- एक ही फ़ोन नंबर से लगातार टेस्ट चलाएं. ऐसा करने पर, आपको थ्रॉटल नहीं किया जाएगा. इससे App Store की समीक्षा के दौरान, ऐप्लिकेशन के अस्वीकार होने का जोखिम कम हो जाता है. ऐसा तब होता है, जब समीक्षक जांच के लिए उसी फ़ोन नंबर का इस्तेमाल करता है.
- डेवलपमेंट एनवायरमेंट में आसानी से टेस्ट करें. इसके लिए, आपको कोई अतिरिक्त प्रयास करने की ज़रूरत नहीं है. जैसे, Google Play services के बिना iOS सिम्युलेटर या Android Emulator में डेवलप करने की सुविधा.
- इंटिग्रेशन टेस्ट लिखें. ऐसा करते समय, आपको उन सुरक्षा जांचों से नहीं रोका जाएगा जो आम तौर पर प्रोडक्शन एनवायरमेंट में असली फ़ोन नंबरों पर लागू होती हैं.
फ़र्ज़ी फ़ोन नंबरों के लिए, इन शर्तों को पूरा करना ज़रूरी है:
- पक्का करें कि आपने ऐसे फ़ोन नंबर इस्तेमाल किए हों जो वाकई काल्पनिक हों और पहले से मौजूद न हों. Firebase Authentication आपको असली उपयोगकर्ताओं के इस्तेमाल किए गए मौजूदा फ़ोन नंबरों को टेस्ट नंबर के तौर पर सेट करने की अनुमति नहीं देता. एक विकल्प यह है कि अमेरिका में टेस्ट के लिए इस्तेमाल किए जाने वाले फ़ोन नंबर के तौर पर, 555 से शुरू होने वाले नंबरों का इस्तेमाल किया जाए. उदाहरण के लिए: +1 650-555-3434
- फ़ोन नंबर, लंबाई और अन्य शर्तों के हिसाब से सही फ़ॉर्मैट में होने चाहिए. इनकी पुष्टि भी उसी तरह की जाएगी जिस तरह किसी असली उपयोगकर्ता के फ़ोन नंबर की पुष्टि की जाती है.
- डेवलपमेंट के लिए, ज़्यादा से ज़्यादा 10 फ़ोन नंबर जोड़े जा सकते हैं.
- ऐसे टेस्ट फ़ोन नंबर/कोड का इस्तेमाल करें जिनका अनुमान लगाना मुश्किल हो और उन्हें बार-बार बदलें.
फ़र्ज़ी फ़ोन नंबर और पुष्टि करने के कोड बनाना
- Firebase कंसोल में, Authentication सेक्शन खोलें.
- अगर आपने पहले से ही साइन इन करने का तरीका टैब में जाकर, फ़ोन सेवा देने वाली कंपनी के ज़रिए साइन इन करने की सुविधा चालू नहीं की है, तो अब इसे चालू करें.
- जांच के लिए फ़ोन नंबर वाला अकॉर्डियन मेन्यू खोलें.
- वह फ़ोन नंबर डालें जिसकी आपको जांच करनी है. उदाहरण के लिए: +1 650-555-3434.
- उस नंबर के लिए, छह अंकों का पुष्टि करने वाला कोड डालें. उदाहरण के लिए: 654321.
- नंबर जोड़ें. अगर आपको फ़ोन नंबर और उसके कोड को मिटाना है, तो उससे जुड़ी लाइन पर कर्सर घुमाएँ और ट्रैश आइकॉन पर क्लिक करें.
मैन्युअल टेस्टिंग
अपने ऐप्लिकेशन में, काल्पनिक फ़ोन नंबर का इस्तेमाल सीधे तौर पर शुरू किया जा सकता है. इससे आपको डेवलपमेंट के चरणों के दौरान, मैन्युअल तरीके से टेस्टिंग करने की सुविधा मिलती है. इसके लिए, आपको कोटा से जुड़ी समस्याओं या थ्रॉटलिंग का सामना नहीं करना पड़ता. Google Play Services इंस्टॉल किए बिना, सीधे तौर पर iOS सिम्युलेटर या Android Emulator से भी टेस्ट किया जा सकता है.
फ़र्ज़ी फ़ोन नंबर देने और पुष्टि करने के लिए कोड भेजने पर, कोई भी असली एसएमएस नहीं भेजा जाता. इसके बजाय, आपको साइन इन करने के लिए, पहले से कॉन्फ़िगर किया गया पुष्टि करने वाला कोड डालना होगा.
साइन-इन की प्रोसेस पूरी होने पर, उस फ़ोन नंबर से Firebase उपयोगकर्ता बनाया जाता है. इस उपयोगकर्ता का व्यवहार और प्रॉपर्टी, फ़ोन नंबर का इस्तेमाल करने वाले किसी असली उपयोगकर्ता की तरह ही होती हैं. साथ ही, यह Realtime Database/Cloud Firestore और अन्य सेवाओं को उसी तरह ऐक्सेस कर सकता है. इस प्रोसेस के दौरान मिंट किए गए आईडी टोकन का सिग्नेचर, फ़ोन नंबर का इस्तेमाल करने वाले असली उपयोगकर्ता के सिग्नेचर जैसा ही होता है.
अगर आपको ऐक्सेस पर और पाबंदी लगानी है, तो इन उपयोगकर्ताओं के लिए कस्टम दावों के ज़रिए टेस्ट रोल सेट करें. इससे उन्हें फ़र्ज़ी उपयोगकर्ताओं के तौर पर अलग किया जा सकेगा.
इंटिग्रेशन टेस्टिंग
मैन्युअल टेस्टिंग के अलावा, Firebase Authentication फ़ोन से पुष्टि करने की सुविधा की टेस्टिंग के लिए इंटिग्रेशन टेस्ट लिखने में मदद करने वाले एपीआई भी उपलब्ध कराता है. ये एपीआई, ऐप्लिकेशन की पुष्टि करने की सुविधा को बंद कर देते हैं. इसके लिए, ये वेब पर reCAPTCHA की ज़रूरत को बंद कर देते हैं. साथ ही, iOS में साइलेंट पुश नोटिफ़िकेशन की सुविधा को बंद कर देते हैं. इससे इन फ़्लो में ऑटोमेशन टेस्टिंग की जा सकती है और इसे लागू करना आसान हो जाता है. इसके अलावा, ये 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 Realtime Database और Cloud Storage सुरक्षा नियमों में,
auth
वैरिएबल से साइन इन किए हुए उपयोगकर्ता का यूनीक User-ID पाया जा सकता है. साथ ही, इसका इस्तेमाल यह कंट्रोल करने के लिए किया जा सकता है कि कोई उपयोगकर्ता किस डेटा को ऐक्सेस कर सकता है.
उपयोगकर्ताओं को पुष्टि करने वाले कई प्रोवाइडर का इस्तेमाल करके, आपके ऐप्लिकेशन में साइन इन करने की अनुमति दी जा सकती है. इसके लिए, पुष्टि करने वाले प्रोवाइडर के क्रेडेंशियल को किसी मौजूदा उपयोगकर्ता खाते से लिंक करें.
किसी उपयोगकर्ता को साइन आउट करने के लिए,
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. });