अपने ऐप को ऑथेंटिकेशन एम्यूलेटर से कनेक्ट करें

अपने ऐप के साथ ऑथेंटिकेशन एमुलेटर का उपयोग करने से पहले, सुनिश्चित करें कि आप समग्र फायरबेस लोकल एमुलेटर सूट वर्कफ़्लो को समझते हैं , और आप लोकल एमुलेटर सूट को इंस्टॉल और कॉन्फ़िगर करते हैं और इसके सीएलआई कमांड की समीक्षा करते हैं।

यह विषय मानता है कि आप उत्पादन के लिए फायरबेस प्रमाणीकरण समाधान विकसित करने से पहले से ही परिचित हैं। यदि आवश्यक हो, तो प्लेटफ़ॉर्म और प्रमाणीकरण तकनीक के अपने संयोजन के लिए दस्तावेज़ की समीक्षा करें।

मैं प्रमाणीकरण एमुलेटर के साथ क्या कर सकता हूं?

प्रमाणीकरण एमुलेटर फायरबेस प्रमाणीकरण सेवाओं का उच्च-निष्ठा स्थानीय अनुकरण प्रदान करता है, जो उत्पादन फायरबेस प्रमाणीकरण में पाई जाने वाली अधिकांश कार्यक्षमता प्रदान करता है। ऐप्पल प्लेटफ़ॉर्म, एंड्रॉइड और वेब फायरबेस एसडीके के साथ युग्मित, एमुलेटर आपको इसकी सुविधा देता है:

  • ईमेल/पासवर्ड, फ़ोन नंबर/एसएमएस, एसएमएस बहु-कारक और तृतीय-पक्ष (जैसे Google) पहचान प्रदाता प्रमाणीकरण के परीक्षण के लिए अनुकरणीय उपयोगकर्ता खाते बनाएं, अपडेट करें और प्रबंधित करें
  • अनुकरणीय उपयोगकर्ताओं को देखें और संपादित करें
  • प्रोटोटाइप कस्टम टोकन प्रमाणीकरण प्रणाली
  • एम्यूलेटर यूआई लॉग टैब में प्रमाणीकरण-संबंधी संदेशों की जांच करें।

एक फायरबेस प्रोजेक्ट चुनें

फायरबेस लोकल एमुलेटर सुइट एकल फायरबेस प्रोजेक्ट के लिए उत्पादों का अनुकरण करता है।

उपयोग करने के लिए प्रोजेक्ट का चयन करने के लिए, एमुलेटर शुरू करने से पहले, सीएलआई में अपनी कार्यशील निर्देशिका में firebase use । या, आप प्रत्येक एमुलेटर कमांड को --project फ़्लैग पास कर सकते हैं।

स्थानीय एमुलेटर सुइट वास्तविक फायरबेस परियोजनाओं और डेमो परियोजनाओं के अनुकरण का समर्थन करता है।

परियोजना प्रकार विशेषताएँ एम्यूलेटर के साथ प्रयोग करें
असली

एक वास्तविक फ़ायरबेस प्रोजेक्ट वह है जिसे आपने बनाया और कॉन्फ़िगर किया है (संभवतः फ़ायरबेस कंसोल के माध्यम से)।

वास्तविक परियोजनाओं में लाइव संसाधन होते हैं, जैसे डेटाबेस इंस्टेंसेस, स्टोरेज बकेट, फ़ंक्शन, या आपके द्वारा उस फायरबेस प्रोजेक्ट के लिए सेट किया गया कोई अन्य संसाधन।

वास्तविक फायरबेस परियोजनाओं के साथ काम करते समय, आप किसी या सभी समर्थित उत्पादों के लिए एमुलेटर चला सकते हैं।

किसी भी उत्पाद के लिए जिसका आप अनुकरण नहीं कर रहे हैं, आपके ऐप्स और कोड लाइव संसाधन (डेटाबेस इंस्टेंस, स्टोरेज बकेट, फ़ंक्शन इत्यादि) के साथ इंटरैक्ट करेंगे।

डेमो

डेमो फ़ायरबेस प्रोजेक्ट में कोई वास्तविक फ़ायरबेस कॉन्फ़िगरेशन नहीं है और कोई लाइव संसाधन नहीं है। इन परियोजनाओं को आमतौर पर कोडलैब या अन्य ट्यूटोरियल के माध्यम से एक्सेस किया जाता है।

डेमो प्रोजेक्ट के लिए प्रोजेक्ट आईडी में demo- उपसर्ग होता है।

डेमो फायरबेस प्रोजेक्ट्स के साथ काम करते समय, आपके ऐप्स और कोड केवल एमुलेटर के साथ इंटरैक्ट करते हैं। यदि आपका ऐप किसी ऐसे संसाधन के साथ इंटरैक्ट करने का प्रयास करता है जिसके लिए एमुलेटर नहीं चल रहा है, तो वह कोड विफल हो जाएगा।

हम अनुशंसा करते हैं कि आप जहां भी संभव हो डेमो प्रोजेक्ट का उपयोग करें। लाभों में शामिल हैं:

  • आसान सेटअप, क्योंकि आप कभी भी फायरबेस प्रोजेक्ट बनाए बिना एमुलेटर चला सकते हैं
  • मजबूत सुरक्षा, क्योंकि यदि आपका कोड गलती से गैर-अनुकरणित (उत्पादन) संसाधनों का आह्वान करता है, तो डेटा परिवर्तन, उपयोग और बिलिंग की कोई संभावना नहीं है
  • बेहतर ऑफ़लाइन समर्थन, क्योंकि आपके एसडीके कॉन्फ़िगरेशन को डाउनलोड करने के लिए इंटरनेट तक पहुंचने की कोई आवश्यकता नहीं है।

अपने ऐप को एम्यूलेटर से बात करने के लिए उपकरण दें

एंड्रॉइड, आईओएस और वेब एसडीके

प्रमाणीकरण एमुलेटर के साथ इंटरैक्ट करने के लिए अपना इन-ऐप कॉन्फ़िगरेशन या परीक्षण कक्षाएं निम्नानुसार सेट करें।

Kotlin+KTX
Firebase.auth.useEmulator("10.0.2.2", 9099)
Java
FirebaseAuth.getInstance().useEmulator("10.0.2.2", 9099);
तीव्र
Auth.auth().useEmulator(withHost:"127.0.0.1", port:9099)

Web modular API

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

const auth = getAuth();
connectAuthEmulator(auth, "http://127.0.0.1:9099");

Web namespaced API

const auth = firebase.auth();
auth.useEmulator("http://127.0.0.1:9099");

क्लाउड फायरस्टोर या रीयलटाइम डेटाबेस के लिए प्रमाणीकरण और क्लाउड फ़ंक्शंस या फायरबेस सुरक्षा नियमों के बीच प्रोटोटाइप और परीक्षण इंटरैक्शन के लिए किसी अतिरिक्त सेटअप की आवश्यकता नहीं है। जब प्रमाणीकरण एमुलेटर कॉन्फ़िगर किया गया है और अन्य एमुलेटर चल रहे हैं, तो वे स्वचालित रूप से एक साथ काम करते हैं।

व्यवस्थापक SDKs

FIREBASE_AUTH_EMULATOR_HOST पर्यावरण चर सेट होने पर फायरबेस एडमिन SDK स्वचालित रूप से प्रमाणीकरण एमुलेटर से कनेक्ट हो जाता है।

export FIREBASE_AUTH_EMULATOR_HOST="127.0.0.1:9099"

ध्यान दें कि क्लाउड फ़ंक्शंस एमुलेटर स्वचालित रूप से प्रमाणीकरण एमुलेटर के बारे में जानता है, इसलिए क्लाउड फ़ंक्शंस और प्रमाणीकरण एम्यूलेटर के बीच एकीकरण का परीक्षण करते समय आप इस चरण को छोड़ सकते हैं। क्लाउड फ़ंक्शंस में एडमिन एसडीके के लिए पर्यावरण चर स्वचालित रूप से सेट हो जाएगा।

पर्यावरण चर सेट के साथ, फायरबेस एडमिन एसडीके स्थानीय विकास और परीक्षण की सुविधा के लिए प्रमाणीकरण एमुलेटर (क्रमशः verifyIdToken और createSessionCookie तरीकों के माध्यम से) द्वारा जारी अहस्ताक्षरित आईडी टोकन और सत्र कुकीज़ स्वीकार करेगा। कृपया सुनिश्चित करें कि उत्पादन में पर्यावरण चर सेट करें।

यदि आप चाहते हैं कि आपका एडमिन एसडीके कोड किसी अन्य वातावरण में चल रहे साझा एमुलेटर से कनेक्ट हो, तो आपको वही प्रोजेक्ट आईडी निर्दिष्ट करना होगा जो आपने फायरबेस सीएलआई का उपयोग करके सेट किया था । आप ऐप को सीधे initializeApp के लिए एक प्रोजेक्ट आईडी पास कर सकते हैं या GCLOUD_PROJECT पर्यावरण चर सेट कर सकते हैं।

Node.js एडमिन SDK
admin.initializeApp({ projectId: "your-project-id" });
पर्यावरणपरिवर्ती तारक
export GCLOUD_PROJECT="your-project-id"

आईडी टोकन

सुरक्षा कारणों से, प्रमाणीकरण एमुलेटर अहस्ताक्षरित आईडी टोकन जारी करता है, जो केवल अन्य फायरबेस एमुलेटर, या फायरबेस एडमिन एसडीके द्वारा कॉन्फ़िगर किए जाने पर स्वीकार किए जाते हैं। ये टोकन उत्पादन मोड में चल रहे उत्पादन फायरबेस सेवाओं या फायरबेस एडमिन एसडीके द्वारा अस्वीकार कर दिए जाएंगे (उदाहरण के लिए ऊपर वर्णित सेटअप चरणों के बिना डिफ़ॉल्ट व्यवहार)।

एम्यूलेटर प्रारंभ करें

आप प्रमाणीकरण एमुलेटर का उपयोग एमुलेटर सूट यूआई के माध्यम से इंटरैक्टिव रूप से और इसके स्थानीय आरईएसटी इंटरफ़ेस के माध्यम से गैर-इंटरैक्टिव रूप से कर सकते हैं। निम्नलिखित अनुभाग इंटरैक्टिव और गैर-इंटरैक्टिव उपयोग के मामलों को कवर करते हैं।

प्रमाणीकरण एमुलेटर, इसके REST इंटरफ़ेस और एमुलेटर सुइट UI को प्रारंभ करने के लिए, निष्पादित करें:

firebase emulators:start

अनाम प्रमाणीकरण के लिए, आपका ऐप आपके प्लेटफ़ॉर्म ( आईओएस , एंड्रॉइड , वेब ) के लिए साइन-इन तर्क का उपयोग कर सकता है।

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

  1. एम्यूलेटर सुइट यूआई में, प्रमाणीकरण टैब पर क्लिक करें।
  2. उपयोगकर्ता जोड़ें बटन पर क्लिक करें.
  3. ईमेल प्रमाणीकरण फ़ील्ड भरकर, उपयोगकर्ता खाता निर्माण विज़ार्ड का पालन करें।

एक परीक्षण उपयोगकर्ता बनाए जाने के साथ, आपका ऐप आपके प्लेटफ़ॉर्म ( आईओएस , एंड्रॉइड , वेब ) के लिए एसडीके तर्क के साथ उपयोगकर्ता को साइन इन और आउट कर सकता है।

ईमेल लिंक प्रवाह के साथ ईमेल सत्यापन/साइन-इन का परीक्षण करने के लिए, एमुलेटर उस टर्मिनल पर एक यूआरएल प्रिंट करता है जिस पर firebase emulators:start निष्पादित किया गया था।

i  To verify the email address customer@ex.com, follow this link:
http://127.0.0.1:9099/emulator/action?mode=verifyEmail&lang=en&oobCode=XYZ123&apiKey=fake-api-key

सत्यापन ईवेंट का अनुकरण करने के लिए लिंक को अपने ब्राउज़र में पेस्ट करें और जांचें कि सत्यापन सफल हुआ या नहीं।

{
  "authEmulator": {
    "success": "The email has been successfully verified.",
    "email": "customer@example.com"
  }
}

पासवर्ड रीसेट का परीक्षण करने के लिए, एमुलेटर टर्मिनल पर एक समान यूआरएल प्रिंट करता है, जिसमें एक नया पासवर्ड पैरामीटर (जिसे आप आवश्यकतानुसार बदल सकते हैं) शामिल है।

http://127.0.0.1:9099/emulator/action?mode=resetPassword&oobCode=XYZ!23&apiKey=fake-api-key&newPassword=YOUR_NEW_PASSWORD

गैर-संवादात्मक परीक्षण

ईमेल/पासवर्ड उपयोगकर्ता खातों को प्रबंधित करने के लिए एमुलेटर सूट यूआई या क्लाइंट कोड का उपयोग करने के बजाय, आप परीक्षण सेटअप स्क्रिप्ट लिख सकते हैं जो उपयोगकर्ता खाते बनाने और हटाने के लिए REST एपीआई को कॉल करते हैं और एमुलेटर ईमेल सत्यापन को पॉप्युलेट करने के लिए आउट-ऑफ-बैंड ईमेल सत्यापन कोड लाते हैं। यूआरएल. यह प्लेटफ़ॉर्म और परीक्षण कोड को अलग रखता है और आपको गैर-संवादात्मक रूप से परीक्षण करने देता है।

गैर-इंटरैक्टिव ईमेल और पासवर्ड परीक्षण प्रवाह के लिए, विशिष्ट अनुक्रम इस प्रकार है।

  1. प्रमाणीकरण साइनअप REST एंडपॉइंट के साथ उपयोगकर्ता बनाएं।
  2. परीक्षण करने के लिए ईमेल और पासवर्ड का उपयोग करके उपयोगकर्ताओं को साइन इन करें।
  3. यदि आपके परीक्षणों पर लागू होता है, तो एमुलेटर-विशिष्ट REST एंडपॉइंट से उपलब्ध आउट-ऑफ़-बैंड ईमेल सत्यापन कोड प्राप्त करें।
  4. डेटा साफ़ करने के लिए एमुलेटर-विशिष्ट REST एंडपॉइंट के साथ उपयोगकर्ता रिकॉर्ड को फ्लश करें।

अनुकरणित फ़ोन/एसएमएस प्रमाणीकरण

फ़ोन प्रमाणीकरण के लिए, प्रामाणिक एमुलेटर समर्थन नहीं करता है:

  • रीकैप्चा और एपीएन प्रवाह। एक बार एमुलेटर के साथ इंटरैक्ट करने के लिए कॉन्फ़िगर किए जाने पर, क्लाइंट एसडीके इन सत्यापन विधियों को एकीकरण परीक्षण ( आईओएस , एंड्रॉइड , वेब ) के लिए वर्णित तरीके से अक्षम कर देते हैं।
  • फ़ायरबेस कंसोल में पहले से कॉन्फ़िगर किए गए कोड के साथ फ़ोन नंबरों का परीक्षण करें।

अन्यथा, क्लाइंट कोड के संदर्भ में, फोन/एसएमएस प्रमाणीकरण प्रवाह उत्पादन ( आईओएस , एंड्रॉइड , वेब ) के लिए वर्णित के समान है।

एम्यूलेटर सुइट यूआई का उपयोग करना:

  1. एम्यूलेटर सुइट यूआई में, प्रमाणीकरण टैब पर क्लिक करें।
  2. उपयोगकर्ता जोड़ें बटन पर क्लिक करें.
  3. फ़ोन प्रमाणीकरण फ़ील्ड भरकर, उपयोगकर्ता खाता निर्माण विज़ार्ड का पालन करें।

हालाँकि, फ़ोन प्रमाणीकरण प्रवाह के लिए, एमुलेटर किसी भी टेक्स्ट संदेश की डिलीवरी को ट्रिगर नहीं करेगा, क्योंकि किसी वाहक से संपर्क करना दायरे से बाहर है और स्थानीय परीक्षण के लिए अनुकूल नहीं है! इसके बजाय, एमुलेटर उस कोड को प्रिंट करता है जो एसएमएस के माध्यम से उसी टर्मिनल पर भेजा गया होगा जिस पर आपने firebase emulators:start ; उपयोगकर्ताओं को अपने टेक्स्ट संदेशों की जाँच करने के लिए इस कोड को ऐप में इनपुट करें।

गैर-संवादात्मक परीक्षण

गैर-इंटरैक्टिव फ़ोन प्रमाणीकरण परीक्षण के लिए, उपलब्ध एसएमएस कोड पुनर्प्राप्त करने के लिए प्रमाणीकरण एमुलेटर REST API का उपयोग करें। ध्यान दें कि हर बार जब आप प्रवाह शुरू करते हैं तो कोड अलग होता है।

विशिष्ट क्रम इस प्रकार है.

  1. सत्यापन प्रक्रिया शुरू करने के लिए प्लेटफ़ॉर्म signInWithPhoneNumber पर कॉल करें।
  2. एमुलेटर-विशिष्ट REST एंडपॉइंट का उपयोग करके सत्यापन कोड पुनर्प्राप्त करें।
  3. सत्यापन कोड के साथ हमेशा की तरह confirmationResult.confirm(code) पर कॉल करें।

बहु-कारक एसएमएस

प्रमाणीकरण एमुलेटर आईओएस , एंड्रॉइड और वेब के लिए उत्पादन में उपलब्ध एसएमएस मल्टी-फैक्टर प्रमाणीकरण (एमएफए) प्रवाह के प्रोटोटाइप और परीक्षण का समर्थन करता है।

जब आप एमुलेटर में एक नकली उपयोगकर्ता जोड़ते हैं, तो आप एमएफए को सक्षम कर सकते हैं और एक या अधिक फोन नंबर कॉन्फ़िगर कर सकते हैं, जिन पर दूसरे कारक एसएमएस संदेश भेजे जाएंगे। संदेश उसी टर्मिनल पर आउटपुट होते हैं जिस पर आपने firebase emulators:start , और REST इंटरफ़ेस से उपलब्ध हैं।

अनुकरणीय तृतीय-पक्ष पहचान प्रदाता (आईडीपी) प्रमाणीकरण

प्रमाणीकरण एमुलेटर आपको उत्पादन कोड में कोई बदलाव किए बिना अपने आईओएस, एंड्रॉइड या वेब ऐप्स में कई तृतीय-पक्ष प्रमाणीकरण प्रवाह का परीक्षण करने देता है। प्रमाणीकरण प्रवाह के उदाहरणों के लिए, प्रदाताओं और प्लेटफ़ॉर्म के विभिन्न संयोजनों के दस्तावेज़ देखें जिनका उपयोग आप अपने ऐप में कर सकते हैं

सामान्यतया, आप दो तरीकों में से एक में प्रमाणित करने के लिए फायरबेस एसडीके का उपयोग कर सकते हैं:

  • आपका ऐप एसडीके को संपूर्ण प्रक्रिया को शुरू से अंत तक संभालने की सुविधा देता है, जिसमें क्रेडेंशियल पुनर्प्राप्त करने के लिए तृतीय-पक्ष आईडीपी प्रदाताओं के साथ सभी इंटरैक्शन भी शामिल हैं।
  • आपका ऐप मैन्युअल रूप से उस पार्टी के एसडीके का उपयोग करके तीसरे पक्ष प्रदाता से क्रेडेंशियल पुनर्प्राप्त करता है और उन क्रेडेंशियल्स को प्रमाणीकरण एसडीके पर भेजता है।

दोबारा, उपरोक्त दस्तावेज़ीकरण लिंक की जांच करें और सुनिश्चित करें कि आप उस प्रवाह से परिचित हैं - फायरबेस एसडीके-प्रबंधित बनाम मैन्युअल क्रेडेंशियल पुनर्प्राप्ति - जिसका आप उपयोग करना चाहते हैं। प्रमाणीकरण एम्यूलेटर किसी भी दृष्टिकोण के परीक्षण का समर्थन करता है।

फायरबेस एसडीके-संचालित आईडीपी प्रवाह का परीक्षण

यदि आपका ऐप इंटरैक्टिव परीक्षण के लिए Microsoft, GitHub, या Yahoo के साथ साइन-इन के लिए OAuthProvider जैसे किसी फायरबेस SDK एंड-टू-एंड फ्लो का उपयोग करता है, तो प्रमाणीकरण एमुलेटर आपको परीक्षण में मदद करने के लिए संबंधित साइन-इन पेज का एक स्थानीय संस्करण प्रदान करता है। वेब ऐप्स से प्रमाणीकरण जो signinWithPopup या signInWithRedirect विधि को कॉल करते हैं। यह स्थानीय रूप से परोसा जाने वाला साइन-इन पेज आपके प्लेटफ़ॉर्म की वेबव्यू लाइब्रेरी द्वारा प्रस्तुत मोबाइल ऐप्स में भी दिखाई देता है।

प्रवाह आगे बढ़ने पर आवश्यकतानुसार एम्यूलेटर नकली तृतीय-पक्ष उपयोगकर्ता खाते और क्रेडेंशियल बनाता है।

मैन्युअल क्रेडेंशियल पुनर्प्राप्ति के साथ आईडीपी प्रवाह का परीक्षण

यदि आप "मैनुअल" साइन-इन तकनीकों का उपयोग करते हैं और अपने प्लेटफ़ॉर्म के signInWithCredentials विधि को कॉल करते हैं, तो, हमेशा की तरह, आपका ऐप वास्तविक तृतीय-पक्ष साइन-इन का अनुरोध करेगा और वास्तविक तृतीय-पक्ष क्रेडेंशियल्स पुनर्प्राप्त करेगा।

ध्यान दें कि एमुलेटर केवल Google साइन-इन, ऐप्पल और अन्य प्रदाताओं से प्राप्त क्रेडेंशियल्स के लिए signInWithCredential प्रमाणीकरण का समर्थन करता है जो JSON वेब टोकन (JWTs) के रूप में कार्यान्वित आईडी टोकन का उपयोग करते हैं। एक्सेस टोकन (उदाहरण के लिए फेसबुक या ट्विटर द्वारा प्रदान किए गए, जो जेडब्ल्यूटी नहीं हैं) समर्थित नहीं हैं। अगला भाग इन मामलों में एक विकल्प पर चर्चा करता है।

गैर-संवादात्मक परीक्षण

गैर-इंटरैक्टिव परीक्षण का एक तरीका एमुलेटर द्वारा दिए गए साइन-इन पेज पर उपयोगकर्ता क्लिक को स्वचालित करना है। वेब ऐप्स के लिए, वेबड्राइवर जैसे नियंत्रण इंटरफ़ेस का उपयोग करें। मोबाइल के लिए, एस्प्रेसो या एक्सकोड जैसे अपने प्लेटफ़ॉर्म से यूआई परीक्षण टूलिंग का उपयोग करें।

वैकल्पिक रूप से, आप signInWithCredential (उदाहरण के लिए एक कोड शाखा में) का उपयोग करने के लिए अपने कोड को अपडेट कर सकते हैं और वास्तविक क्रेडेंशियल के बजाय खातों के लिए नकली आईडी टोकन के साथ टोकन प्रमाणीकरण प्रवाह का उपयोग कर सकते हैं।

  1. अपने कोड के उस हिस्से को रीवायर करें या उस पर टिप्पणी करें जो आईडीपी से आईडीटोकन को पुनः प्राप्त करता है; यह आपके परीक्षणों के दौरान वास्तविक उपयोगकर्ता नाम और पासवर्ड इनपुट करने की आवश्यकता को हटा देता है, और आपके परीक्षणों को आईडीपी पर एपीआई कोटा और दर सीमा से राहत देता है।
  2. दूसरा, signInWithCredential के लिए टोकन के स्थान पर एक शाब्दिक JSON स्ट्रिंग का उपयोग करें। उदाहरण के तौर पर वेब एसडीके का उपयोग करके, आप कोड को इसमें बदल सकते हैं:
firebase.auth().signInWithCredential(firebase.auth.GoogleAuthProvider.credential(
  '{"sub": "abc123", "email": "foo@example.com", "email_verified": true}'
));

जब एमुलेटर के साथ उपयोग किया जाता है, तो यह कोड Google पर foo@example.com ईमेल वाले उपयोगकर्ता को सफलतापूर्वक प्रमाणित करेगा। उप फ़ील्ड को एक प्राथमिक कुंजी के रूप में सोचें, जिसे विभिन्न उपयोगकर्ताओं द्वारा साइन इन करने का मज़ाक उड़ाते हुए, किसी भी स्ट्रिंग में बदला जा सकता है। उदाहरण के लिए, आप firebase.auth.GoogleAuthProvider new firebase.auth.OAuthProvider('yahoo.com') या किसी अन्य प्रदाता आईडी से बदल सकते हैं जिसे आप मॉक करना चाहते हैं।

अनुकरणीय कस्टम टोकन प्रमाणीकरण

प्रमाणीकरण एमुलेटर समर्थित प्लेटफ़ॉर्म पर signInWithCustomToken विधि पर कॉल का उपयोग करके कस्टम JSON वेब टोकन के साथ प्रमाणीकरण को संभालता है, जैसा कि उत्पादन प्रमाणीकरण दस्तावेज़ में वर्णित है।

प्रमाणीकरण एमुलेटर उत्पादन से किस प्रकार भिन्न है?

फायरबेस प्रमाणीकरण एमुलेटर उत्पादन उत्पाद की कई विशेषताओं का अनुकरण करता है। हालाँकि, चूंकि किसी भी प्रकार की प्रमाणीकरण प्रणाली कई स्तरों (डिवाइस, तृतीय पक्ष प्रदाता, फायरबेस, आदि) पर सुरक्षा पर बहुत अधिक निर्भर करती है, इसलिए एमुलेटर के लिए सभी प्रवाहों को ठीक से फिर से बनाना मुश्किल होता है।

बादल आईएएम

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

चूंकि मोबाइल प्लेटफ़ॉर्म पर, ईमेल लिंक साइन-इन फायरबेस डायनेमिक लिंक पर निर्भर करता है, ऐसे सभी लिंक इसके बजाय (मोबाइल) वेब प्लेटफ़ॉर्म पर खोले जाएंगे।

तृतीय-पक्ष साइन-इन

तृतीय-पक्ष साइन-इन प्रवाह के लिए, फायरबेस प्रमाणीकरण ट्विटर और जीथब जैसे तृतीय-पक्ष प्रदाताओं के सुरक्षित क्रेडेंशियल्स पर निर्भर करता है।

Google और Apple जैसे OpenID कनेक्ट प्रदाताओं के वास्तविक क्रेडेंशियल प्रमाणीकरण एमुलेटर द्वारा स्वीकार किए जाते हैं। गैर-ओपनआईडी कनेक्ट प्रदाताओं के क्रेडेंशियल समर्थित नहीं हैं।

ईमेल/एसएमएस साइन-इन

उत्पादन ऐप्स में, ईमेल और एसएमएस साइन-इन प्रवाह में एक अतुल्यकालिक ऑपरेशन शामिल होता है जिसमें उपयोगकर्ता प्राप्त संदेश की जांच करता है और साइन-इन इंटरफ़ेस में एक लॉगिन कोड दर्ज करता है। प्रमाणीकरण एमुलेटर कोई ईमेल या एसएमएस संदेश नहीं भेजता है, लेकिन जैसा कि ऊपर वर्णित है, यह लॉगिन कोड उत्पन्न करता है और उन्हें परीक्षण में उपयोग करने के लिए टर्मिनल पर आउटपुट करता है।

एमुलेटर निश्चित लॉगिन कोड के साथ परीक्षण फोन नंबरों को परिभाषित करने की क्षमता का समर्थन नहीं करता है जैसा कि फायरबेस कंसोल का उपयोग करके किया जा सकता है।

कस्टम टोकन प्रमाणीकरण

प्रमाणीकरण एमुलेटर कस्टम टोकन के हस्ताक्षर या समाप्ति को मान्य नहीं करता है। यह आपको हस्तनिर्मित टोकन का उपयोग करने और प्रोटोटाइपिंग और परीक्षण परिदृश्यों में अनिश्चित काल तक टोकन का पुन: उपयोग करने की अनुमति देता है।

दर सीमित/दुरुपयोग विरोधी

प्रमाणीकरण एमुलेटर उत्पादन दर सीमित करने या दुरुपयोग-विरोधी सुविधाओं की नकल नहीं करता है।

कार्यों को अवरुद्ध करना

उत्पादन में, उपयोगकर्ताओं को beforeCreate और beforeSignIn इवेंट ट्रिगर होने के बाद एक बार स्टोरेज में लिखा जाता है। हालाँकि, तकनीकी सीमाओं के कारण, प्रमाणीकरण एमुलेटर दो बार स्टोर करने के लिए लिखता है, एक बार उपयोगकर्ता निर्माण के बाद और दूसरा साइन-इन के बाद। इसका मतलब यह है कि नए उपयोगकर्ताओं के लिए, आप प्रमाणीकरण एमुलेटर में beforeSignIn में getAuth().getUser() सफलतापूर्वक कॉल कर सकते हैं, लेकिन उत्पादन में ऐसा करने पर आपको एक त्रुटि का सामना करना पड़ेगा।

आगे क्या?