Catch up on highlights from Firebase at Google I/O 2023. Learn more

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

डेमो

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

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

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

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

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

एमुलेटर से बात करने के लिए अपने ऐप को इंस्ट्रुमेंट करें

Android, iOS और वेब SDKs

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

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

Web version 9

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

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

Web version 8

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

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

व्यवस्थापक एसडीके

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

export FIREBASE_AUTH_EMULATOR_HOST="localhost:9099"

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

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

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

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

आईडी टोकन

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

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

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

ऑथेंटिकेशन एम्यूलेटर, इसके REST इंटरफ़ेस और एम्यूलेटर सुइट UI को शुरू करने के लिए, निष्पादित करें:

firebase emulators:start

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

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

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

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

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

i  To verify the email address customer@ex.com, follow this link:
http://localhost: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"
  }
}

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

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

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

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

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

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

नकली फोन/एसएमएस प्रमाणीकरण

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

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

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

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

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

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

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

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

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

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

मल्टी-फैक्टर एसएमएस

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

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

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

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

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

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

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

परीक्षण Firebase SDK-संचालित IDP प्रवाह

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

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

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

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

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

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

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

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

  1. IDP से idTokens पुनर्प्राप्त करने वाले अपने कोड के हिस्से को रिवायर या टिप्पणी करें; यह आपके परीक्षणों के दौरान वास्तविक उपयोगकर्ता नाम और पासवर्ड इनपुट करने की आवश्यकता को हटा देता है, और आपके परीक्षणों को एपीआई कोटा और आईडीपी पर दर सीमा से राहत देता है।
  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') या किसी अन्य प्रदाता आईडी से बदल सकते हैं, जिसका आप मजाक बनाना चाहते हैं।

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

ऑथेंटिकेशन इम्यूलेटर कस्टम JSON वेब टोकन के साथ ऑथेंटिकेशन को हैंडल करता signInWithCustomToken , जैसा कि प्रोडक्शन ऑथेंटिकेशन डॉक्यूमेंटेशन में बताया गया है।

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

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

बादल आईएएम

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

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

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

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

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

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

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

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

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

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

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

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

अवरोधक कार्य

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

आगे क्या?