अपने ऐप्लिकेशन के साथ Authentication एम्युलेटर का इस्तेमाल करने से पहले, पक्का करें कि आपको पूरे Firebase Local Emulator Suite वर्कफ़्लो के बारे में जानकारी है. साथ ही, यह भी पक्का करें कि आपने Local Emulator Suite को इंस्टॉल और कॉन्फ़िगर किया है और इसके सीएलआई निर्देशों की समीक्षा की है.
इस विषय में यह माना गया है कि आपको प्रोडक्शन के लिए, Firebase Authentication के समाधान बनाने के बारे में पहले से पता है. अगर ज़रूरी हो, तो प्लैटफ़ॉर्म और पुष्टि करने की तकनीक को जोड़ने से जुड़े दस्तावेज़ देखें.
Authentication एमुलेटर की मदद से क्या किया जा सकता है?
Authentication एमुलेटर, Firebase Authentication सेवाओं का हाई-फ़िडेलिटी लोकल एमुलेटर उपलब्ध कराता है. इसमें प्रोडक्शन Firebase Authentication में मिलने वाली ज़्यादातर सुविधाएं मिलती हैं. Apple प्लैटफ़ॉर्म, Android, और वेब Firebase SDK टूल के साथ इस्तेमाल करने पर, एमुलेटर की मदद से ये काम किए जा सकते हैं:
- ईमेल/पासवर्ड, फ़ोन नंबर/एसएमएस, एसएमएस के ज़रिए कई तरीकों से पुष्टि करने की सुविधा, और तीसरे पक्ष (जैसे, Google) के आइडेंटिटी प्रोवाइडर की पुष्टि करने की सुविधा की जांच करने के लिए, एमुलेट किए गए उपयोगकर्ता खाते बनाएं, अपडेट करें, और मैनेज करें
- एमुलेट किए गए उपयोगकर्ताओं को देखना और उनमें बदलाव करना
- पसंद के मुताबिक टोकन की पुष्टि करने वाले सिस्टम के प्रोटोटाइप
- एम्युलेटर के यूज़र इंटरफ़ेस (यूआई) लॉग टैब में, पुष्टि करने से जुड़े मैसेज देखें.
कोई Firebase प्रोजेक्ट चुनें
Firebase Local Emulator Suite, किसी एक Firebase प्रोजेक्ट के लिए प्रॉडक्ट को एमुलेट करता है.
इस्तेमाल करने के लिए प्रोजेक्ट चुनने के लिए, एमुलेटर शुरू करने से पहले, अपनी वर्किंग डायरेक्ट्री में सीएलआई में firebase use
चलाएं. इसके अलावा, हर एम्युलेटर कमांड को --project
फ़्लैग भेजा जा सकता है.
Local Emulator Suite, असल Firebase प्रोजेक्ट और डेमो प्रोजेक्ट को एमुलेट करता है.
प्रोजेक्ट का टाइप | सुविधाएं | एम्युलेटर के साथ इस्तेमाल करना |
---|---|---|
रीयल |
असल Firebase प्रोजेक्ट वह होता है जिसे आपने बनाया और कॉन्फ़िगर किया है. ऐसा ज़्यादातर मामलों में, Firebase कंसोल के ज़रिए किया जाता है. असल प्रोजेक्ट में लाइव संसाधन होते हैं. जैसे, डेटाबेस इंस्टेंस, स्टोरेज बकेट, फ़ंक्शन या कोई ऐसा अन्य संसाधन जिसे आपने उस Firebase प्रोजेक्ट के लिए सेट अप किया है. |
रीयल Firebase प्रोजेक्ट के साथ काम करते समय, इस्तेमाल किए जा सकने वाले किसी भी या सभी प्रॉडक्ट के लिए एम्युलेटर चलाए जा सकते हैं. जिन प्रॉडक्ट को एमुलेट नहीं किया जा रहा है उनके लिए, आपके ऐप्लिकेशन और कोड, लाइव रिसॉर्स (डेटाबेस इंस्टेंस, स्टोरेज बकेट, फ़ंक्शन वगैरह) के साथ इंटरैक्ट करेंगे. |
डेमो |
डेमो Firebase प्रोजेक्ट में, कोई असल Firebase कॉन्फ़िगरेशन और लाइव संसाधन नहीं होते. इन प्रोजेक्ट को आम तौर पर कोडलैब या दूसरे ट्यूटोरियल से ऐक्सेस किया जाता है. डेमो प्रोजेक्ट के प्रोजेक्ट आईडी में |
डेमो Firebase प्रोजेक्ट के साथ काम करते समय, आपके ऐप्लिकेशन और कोड, सिर्फ़ एमुलेटर के साथ इंटरैक्ट करते हैं. अगर आपका ऐप्लिकेशन किसी ऐसे संसाधन से इंटरैक्ट करने की कोशिश करता है जिसके लिए एम्युलेटर नहीं चल रहा है, तो वह कोड काम नहीं करेगा. |
हमारा सुझाव है कि जहां भी हो सके वहां डेमो प्रोजेक्ट का इस्तेमाल करें. इसके ये फ़ायदे हैं:
- आसान सेटअप, क्योंकि Firebase प्रोजेक्ट बनाए बिना ही एमुलेटर चलाए जा सकते हैं
- ज़्यादा सुरक्षित, क्योंकि अगर आपका कोड गलती से एमुलेट किए गए (प्रोडक्शन) संसाधनों को चालू करता है, तो डेटा में बदलाव, इस्तेमाल, और बिलिंग की संभावना नहीं होती
- SDK टूल के कॉन्फ़िगरेशन को डाउनलोड करने के लिए, इंटरनेट ऐक्सेस करने की ज़रूरत नहीं होती है. इसलिए, यह ऑफ़लाइन तरीके से भी बेहतर तरीके से काम करती है.
अपने ऐप्लिकेशन को एमुलेटर से बात करने के लिए इंस्ट्रूमेंट करना
Android, iOS, और वेब के लिए SDK टूल
Authentication एमुलेटर के साथ इंटरैक्ट करने के लिए, इन-ऐप्लिकेशन कॉन्फ़िगरेशन या टेस्ट क्लास को इस तरह सेट अप करें.
Kotlin+KTX
Firebase.auth.useEmulator("10.0.2.2", 9099)
Java
FirebaseAuth.getInstance().useEmulator("10.0.2.2", 9099);
Swift
Auth.auth().useEmulator(withHost:"127.0.0.1", port:9099)
Web
import { getAuth, connectAuthEmulator } from "firebase/auth"; const auth = getAuth(); connectAuthEmulator(auth, "http://127.0.0.1:9099");
Web
const auth = firebase.auth(); auth.useEmulator("http://127.0.0.1:9099");
Cloud Firestore या Realtime Database के लिए, Authentication और Cloud Functions या Firebase Security Rules के बीच इंटरैक्शन के प्रोटोटाइप बनाने और उनकी जांच करने के लिए, किसी अन्य सेटअप की ज़रूरत नहीं है. जब Authentication एमुलेटर कॉन्फ़िगर हो जाता है और अन्य एमुलेटर चल रहे होते हैं, तो वे अपने-आप साथ मिलकर काम करते हैं.
Admin SDK सेकंड
FIREBASE_AUTH_EMULATOR_HOST
एनवायरमेंट वैरिएबल सेट होने पर, Firebase Admin SDK अपने-आप Authentication एमुलेटर से कनेक्ट हो जाते हैं.
export FIREBASE_AUTH_EMULATOR_HOST="127.0.0.1:9099"
ध्यान दें कि Cloud Functions एमुलेटर, Authentication एमुलेटर के बारे में अपने-आप जानता है. इसलिए, Cloud Functions और Authentication एमुलेटर के बीच इंटिग्रेशन की जांच करते समय, इस चरण को छोड़ा जा सकता है. एनवायरमेंट वैरिएबल, Cloud Functions में Admin SDK के लिए अपने-आप सेट हो जाएगा.
एनवायरमेंट वैरिएबल सेट होने पर, Firebase Admin SDKs, बिना हस्ताक्षर वाले आईडी टोकन और Authentication एमुलेटर से जारी की गई सेशन कुकी स्वीकार करेंगे. ये कुकी, verifyIdToken
और createSessionCookie
तरीकों से जारी की जाती हैं. इससे, लोकल डेवलपमेंट और टेस्टिंग में मदद मिलती है. कृपया पक्का करें कि प्रोडक्शन में एनवायरमेंट वैरिएबल न सेट किया गया हो.
अगर आपको अपने Admin SDK कोड को किसी ऐसे शेयर किए गए एमुलेटर से कनेक्ट करना है जो किसी दूसरे एनवायरमेंट में चल रहा है, तो आपको वही प्रोजेक्ट आईडी डालना होगा जिसे आपने Firebase CLI का इस्तेमाल करके सेट किया था. initializeApp
को सीधे तौर पर प्रोजेक्ट आईडी दिया जा सकता है या GCLOUD_PROJECT
एनवायरमेंट वैरिएबल सेट किया जा सकता है.
Node.js Admin SDK
admin.initializeApp({ projectId: "your-project-id" });
एनवायरमेंट वैरिएबल
export GCLOUD_PROJECT="your-project-id"
आईडी टोकन
सुरक्षा की वजहों से, Authentication एम्युलेटर, साइन नहीं किए गए आईडी टोकन जनरेट करता है. इन टोकन को सिर्फ़ दूसरे Firebase एम्युलेटर या Firebase एडमिन SDK कॉन्फ़िगर करने पर स्वीकार करते हैं. प्रोडक्शन मोड में चल रही Firebase सेवाएं या Firebase Admin SDK टूल, इन टोकन को अस्वीकार कर देंगे. उदाहरण के लिए, ऊपर बताए गए सेटअप चरणों के बिना डिफ़ॉल्ट तरीके से काम करना.
एम्युलेटर शुरू करना
Authentication एमुलेटर का इस्तेमाल, Emulator Suite UI के ज़रिए इंटरैक्टिव तरीके से किया जा सकता है. इसके अलावा, इसके लोकल REST इंटरफ़ेस की मदद से, बिना इंटरैक्टिव तरीके से भी इसका इस्तेमाल किया जा सकता है. यहां दिए गए सेक्शन में, इंटरैक्टिव और नॉन-इंटरैक्टिव इस्तेमाल के उदाहरणों के बारे में बताया गया है.
Authentication एम्युलेटर, उसका REST इंटरफ़ेस, और Emulator Suite UI शुरू करने के लिए, यह तरीका अपनाएं:
firebase emulators:start
ईमेल का एमुलेट किया गया वर्शन, ईमेल लिंक, और बिना नाम वाले उपयोगकर्ता के लिए पुष्टि करने की सुविधा
बिना पहचान ज़ाहिर किए पुष्टि करने के लिए, आपका ऐप्लिकेशन आपके प्लैटफ़ॉर्म (iOS, Android, वेब) के लिए साइन-इन लॉजिक का इस्तेमाल कर सकता है.
ईमेल/पासवर्ड की पुष्टि करने के लिए, उपयोगकर्ताओं के खातों को अपने ऐप्लिकेशन के Authentication एम्युलेटर में जोड़ें. ऐसा करने के लिए, SDK टूल के Authentication तरीके इस्तेमाल करें या Emulator Suite UI का इस्तेमाल करें.
- Emulator Suite UI में, पुष्टि टैब पर क्लिक करें.
- उपयोगकर्ता जोड़ें बटन पर क्लिक करें.
- उपयोगकर्ता खाता बनाने वाले विज़र्ड का पालन करें. इसके लिए, ईमेल की पुष्टि करने वाले फ़ील्ड में जानकारी डालें.
टेस्ट यूज़र बन जाने के बाद, ऐप्लिकेशन आपके प्लैटफ़ॉर्म (iOS, Android, वेब) के लिए SDK टूल लॉजिक का इस्तेमाल करके, उपयोगकर्ता को साइन इन और साइन आउट कर सकता है.
ईमेल लिंक फ़्लो की मदद से, ईमेल की पुष्टि करने/साइन इन करने की जांच करने के लिए, एमुलेटर उस टर्मिनल पर यूआरएल प्रिंट करता है जिस पर 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"
}
}
पासवर्ड फिर से सेट करने की जांच करने के लिए एम्युलेटर, टर्मिनल से मिलता-जुलता यूआरएल प्रिंट करता है. इसमें newPassword पैरामीटर (जिसे ज़रूरत के मुताबिक बदला जा सकता है) भी शामिल होता है.
http://127.0.0.1:9099/emulator/action?mode=resetPassword&oobCode=XYZ!23&apiKey=fake-api-key&newPassword=YOUR_NEW_PASSWORD
नॉन-इंटरैक्टिव टेस्टिंग
ईमेल/पासवर्ड उपयोगकर्ता खातों को मैनेज करने के लिए Emulator Suite UI या क्लाइंट कोड का इस्तेमाल करने के बजाय, टेस्ट सेट अप स्क्रिप्ट लिखी जा सकती हैं. ये उपयोगकर्ता खाते बनाने और मिटाने के लिए, REST API को कॉल करती हैं. साथ ही, एम्युलेटर पर भेजे गए ईमेल की पुष्टि करने वाले यूआरएल को पॉप्युलेट करने के लिए, आउट-ऑफ़-बैंड ईमेल पुष्टि कोड फ़ेच कर सकती हैं. इससे प्लैटफ़ॉर्म और टेस्ट कोड अलग-अलग रहते हैं और आपको बिना इंटरैक्ट किए टेस्ट करने की सुविधा मिलती है.
इंटरैक्टिव ईमेल और पासवर्ड टेस्ट फ़्लो के लिए, सामान्य क्रम इस तरह का होता है.
- Authentication signUp REST एंडपॉइंट का इस्तेमाल करके उपयोगकर्ता बनाएं.
- टेस्ट करने के लिए, ईमेल पतों और पासवर्ड का इस्तेमाल करके उपयोगकर्ताओं को साइन इन करें.
- अगर आपके टेस्ट में यह सुविधा काम करती है, तो एमुलेटर के हिसाब से बनाए गए REST एंडपॉइंट से, ईमेल से पुष्टि करने के लिए उपलब्ध कोड फ़ेच करें.
- डेटा मिटाने के लिए, एम्युलेटर के हिसाब से बनाए गए REST एंडपॉइंट की मदद से उपयोगकर्ता रिकॉर्ड फ़्लश करें.
फ़ोन/एसएमएस की मदद से पुष्टि करने की सुविधा
फ़ोन से पुष्टि करने के लिए, Auth एमुलेटर इनके साथ काम नहीं करता:
- reCAPTCHA और एपीएन फ़्लो. एमुलेटर के साथ इंटरैक्ट करने के लिए कॉन्फ़िगर होने के बाद, क्लाइंट SDK टूल, पुष्टि करने के इन तरीकों को उसी तरह बंद कर देते हैं जिस तरह इंटिग्रेशन टेस्टिंग (iOS, Android, वेब) के लिए बताया गया है.
- Firebase कंसोल में, पहले से कॉन्फ़िगर किए गए कोड वाले फ़ोन नंबर की जांच करें.
अगर ऐसा नहीं है, तो क्लाइंट कोड के हिसाब से, फ़ोन/एसएमएस से पुष्टि करने का फ़्लो, प्रोडक्शन (iOS, Android, वेब) के लिए बताए गए फ़्लो जैसा ही होता है.
Emulator Suite UI का इस्तेमाल करके:
- Emulator Suite UI में, पुष्टि टैब पर क्लिक करें.
- उपयोगकर्ता जोड़ें बटन पर क्लिक करें.
- फ़ोन की पुष्टि करने वाले फ़ील्ड भरने के लिए, उपयोगकर्ता खाता बनाने वाले विज़र्ड का पालन करें.
हालांकि, फ़ोन से पुष्टि करने के फ़्लो के लिए, एमुलेटर किसी भी मैसेज की डिलीवरी को ट्रिगर नहीं करेगा. ऐसा इसलिए है, क्योंकि मोबाइल और इंटरनेट सेवा देने वाली कंपनी से संपर्क करना, एमुलेटर के दायरे से बाहर है और स्थानीय टेस्टिंग के लिए सही नहीं है! इसके बजाय, एमुलेटर उस कोड को प्रिंट करता है जिसे एसएमएस के ज़रिए उसी टर्मिनल पर भेजा गया होता है जिस पर आपने firebase emulators:start
को चलाया था. उपयोगकर्ताओं के टेक्स्ट मैसेज देखने की प्रक्रिया को सिम्युलेट करने के लिए, इस कोड को ऐप्लिकेशन में डालें.
नॉन-इंटरैक्टिव टेस्टिंग
फ़ोन से पुष्टि करने की इंटरैक्टिव सुविधा की जांच के लिए, उपलब्ध एसएमएस कोड पाने के लिए Authentication एमुलेटर REST API का इस्तेमाल करें. ध्यान रखें कि हर बार फ़्लो शुरू करने पर कोड अलग-अलग होता है.
आम तौर पर, यह क्रम इस तरह होता है.
- पुष्टि की प्रक्रिया शुरू करने के लिए, प्लैटफ़ॉर्म
signInWithPhoneNumber
को कॉल करें. - एमुलेटर के हिसाब से बनाए गए REST एंडपॉइंट का इस्तेमाल करके, पुष्टि करने के लिए कोड पाएं.
- पुष्टि करने के लिए कोड के साथ,
confirmationResult.confirm(code)
पर कॉल करें.
बहु-स्तरीय एसएमएस
Authentication एमुलेटर, iOS, Android, और वेब के लिए, प्रोडक्शन में उपलब्ध एसएमएस से कई तरीकों से पुष्टि करने (एमएफ़ए) वाले फ़्लो के प्रोटोटाइप बनाने और उनकी जांच करने की सुविधा देता है.
एम्युलेटर में किसी मॉक उपयोगकर्ता को जोड़ने पर, MFA चालू किया जा सकता है. साथ ही, एक या उससे ज़्यादा ऐसे फ़ोन नंबर कॉन्फ़िगर किए जा सकते हैं जिन पर दूसरे चरण के एसएमएस भेजे जाएंगे. मैसेज, उसी टर्मिनल पर दिखते हैं जिस पर आपने firebase emulators:start
को चलाया था. साथ ही, ये REST इंटरफ़ेस से भी उपलब्ध होते हैं.
तीसरे पक्ष के आइडेंटिटी प्रोवाइडर (आईडीपी) की पुष्टि करने की सुविधा
Authentication एमुलेटर की मदद से, अपने iOS, Android या वेब ऐप्लिकेशन में तीसरे पक्ष के कई पुष्टि करने के तरीकों की जांच की जा सकती है. इसके लिए, आपको प्रोडक्शन कोड में कोई बदलाव नहीं करना पड़ता. पुष्टि करने के फ़्लो के उदाहरणों के लिए, ऐप्लिकेशन में इस्तेमाल किए जा सकने वाले, सेवा देने वाली कंपनियों और प्लैटफ़ॉर्म के अलग-अलग कॉम्बिनेशन के दस्तावेज़ देखें.
आम तौर पर, पुष्टि करने के लिए Firebase SDK टूल का इस्तेमाल, इनमें से किसी एक तरीके से किया जा सकता है:
- आपका ऐप्लिकेशन, SDK टूल को पूरी प्रोसेस को एंड-टू-एंड मैनेज करने की अनुमति देता है. इसमें क्रेडेंशियल पाने के लिए, तीसरे पक्ष की आईडीपी (IdP) की सेवा देने वाली कंपनियों के साथ किए जाने वाले सभी इंटरैक्शन भी शामिल हैं.
- आपका ऐप्लिकेशन, तीसरे पक्ष के SDK टूल का इस्तेमाल करके, तीसरे पक्ष के प्रोवाइडर से क्रेडेंशियल मैन्युअल तरीके से हासिल करता है और उन क्रेडेंशियल को Authentication SDK टूल को पास करता है.
दोबारा, ऊपर दिए गए दस्तावेज़ के लिंक की जांच करें और पक्का करें कि आपको इस्तेमाल करने के लिए - Firebase SDK टूल की मदद से मैनेज किए जाने वाले बनाम मैन्युअल क्रेडेंशियल वापस पाने की प्रक्रिया के बारे में जानकारी है. Authentication एमुलेटर, दोनों तरीकों की जांच करने की सुविधा देता है.
Firebase SDK टूल से चलने वाले आईडीपी फ़्लो की जांच करना
अगर आपका ऐप्लिकेशन इंटरैक्टिव टेस्टिंग के लिए, Microsoft, GitHub या Yahoo के साथ साइन इन करने के लिए OAuthProvider
जैसे Firebase SDK टूल के एंड-टू-एंड फ़्लो का इस्तेमाल करता है, तो Authentication एमुलेटर, उस साइन-इन पेज का लोकल वर्शन दिखाता है. इससे आपको signinWithPopup
या signInWithRedirect
तरीके को कॉल करने वाले वेब ऐप्लिकेशन से पुष्टि करने की सुविधा का टेस्ट करने में मदद मिलती है. स्थानीय तौर पर दिखाया जाने वाला यह साइन इन पेज, मोबाइल ऐप्लिकेशन में भी दिखता है. इसे आपके प्लैटफ़ॉर्म की वेबव्यू लाइब्रेरी रेंडर करती है.
एमुलेटर, तीसरे पक्ष के उपयोगकर्ता खाते और क्रेडेंशियल बनाता है.
मैन्युअल तरीके से क्रेडेंशियल वापस पाने के साथ आईडीपी फ़्लो की जांच करना
अगर "मैन्युअल" साइन-इन तकनीकों का इस्तेमाल किया जाता है और अपने प्लैटफ़ॉर्म के signInWithCredentials
तरीके को कॉल किया जाता है, तो आपका ऐप्लिकेशन हमेशा की तरह तीसरे पक्ष के असली साइन-इन का अनुरोध करेगा और तीसरे पक्ष के असली क्रेडेंशियल वापस लाएगा.
ध्यान दें कि एमुलेटर सिर्फ़ Google Sign-In, Apple, और सेवा देने वाली उन अन्य कंपनियों के क्रेडेंशियल के लिए signInWithCredential
पुष्टि करने की सुविधा देता है जो JSON वेब टोकन (JWT) के तौर पर लागू किए गए आईडी टोकन का इस्तेमाल करती हैं. ऐक्सेस टोकन (जैसे, Facebook या Twitter से मिले ऐसे टोकन जो JWT नहीं हैं) का इस्तेमाल नहीं किया जा सकता. अगले सेक्शन में, इन मामलों में किसी अन्य विकल्प के बारे में बताया गया है.
नॉन-इंटरैक्टिव टेस्टिंग
बिना इंटरैक्शन वाली टेस्टिंग का एक तरीका यह है कि एमुलेटर से दिखाए गए साइन-इन पेज पर, उपयोगकर्ता के क्लिक को ऑटोमेट किया जाए. वेब ऐप्लिकेशन के लिए, WebDriver जैसे कंट्रोल इंटरफ़ेस का इस्तेमाल करें. मोबाइल के लिए, अपने प्लैटफ़ॉर्म के यूज़र इंटरफ़ेस (यूआई) टेस्ट टूल का इस्तेमाल करें. जैसे, Espresso या Xcode.
इसके अलावा, signInWithCredential
का इस्तेमाल करने के लिए, अपने कोड को अपडेट किया जा सकता है (उदाहरण के लिए, कोड की किसी शाखा में). साथ ही, खातों के लिए असली क्रेडेंशियल के बजाय, मॉक आईडी टोकन के साथ टोकन की पुष्टि करने वाले फ़्लो का इस्तेमाल किया जा सकता है.
- आईडीपी से idTokens पाने वाले अपने कोड के हिस्से को फिर से जांचें या टिप्पणी करें. इससे जांच के दौरान, असली उपयोगकर्ता नाम और पासवर्ड डालने की ज़रूरत नहीं पड़ती. साथ ही, आईडीपी पर एपीआई कोटा और रेट लिमिट से जुड़ी जांच से बचा जा सकता है.
- दूसरा,
signInWithCredential
के लिए टोकन के बजाय, लिटरल JSON स्ट्रिंग का इस्तेमाल करें. उदाहरण के तौर पर, वेब SDK टूल का इस्तेमाल करके, कोड को इनमें बदला जा सकता है:
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')
से या सेवा देने वाली किसी अन्य कंपनी के आईडी से बदला जा सकता है.
पसंद के मुताबिक बनाए गए टोकन की पुष्टि करने की सुविधा
Authentication एमुलेटर, काम करने वाले प्लैटफ़ॉर्म पर signInWithCustomToken
तरीके को कॉल करके, कस्टम JSON वेब टोकन की मदद से पुष्टि करता है. इस बारे में प्रोडक्शन Authentication दस्तावेज़ में बताया गया है.
Authentication एमुलेटर, प्रोडक्शन से कैसे अलग है
Firebase Authentication एमुलेटर, प्रोडक्शन प्रॉडक्ट की कई सुविधाओं को सिम्युलेट करता है. हालांकि, पुष्टि करने वाला कोई भी सिस्टम, डिवाइस, तीसरे पक्ष की कंपनियां, Firebase वगैरह जैसे कई लेवल पर सुरक्षा पर काफ़ी निर्भर करता है. इसलिए, एम्युलेटर के लिए सभी फ़्लो को सही तरीके से फिर से बनाना मुश्किल होता है.
Cloud IAM
Firebase Emulator Suite, दौड़ने के लिए किसी भी IAM से जुड़े व्यवहार को दोहराने या उनका पालन करने की कोशिश नहीं करता. एमुलेटर, Firebase के दिए गए सुरक्षा नियमों का पालन करते हैं. हालांकि, जिन स्थितियों में आम तौर पर IAM का इस्तेमाल किया जाता है, जैसे कि सेवा खाते को कॉल करने वाले Cloud Functions को सेट करने के लिए और इस तरह अनुमतियां देने के लिए, एमुलेटर को कॉन्फ़िगर नहीं किया जा सकता. साथ ही, यह सीधे तौर पर किसी लोकल स्क्रिप्ट को चलाने की तरह, आपकी डेवलपर मशीन पर दुनिया भर में उपलब्ध खाते का इस्तेमाल करेगा.
मोबाइल पर ईमेल लिंक से साइन इन करना
मोबाइल प्लैटफ़ॉर्म पर, ईमेल लिंक से साइन इन करने की सुविधा Firebase डाइनैमिक लिंक पर निर्भर करती है. इसलिए, ऐसे सभी लिंक, मोबाइल वेब प्लैटफ़ॉर्म पर खुलेंगे.
तीसरे पक्ष की मदद से साइन-इन
तीसरे पक्ष की साइन-इन प्रोसेस के लिए, Firebase Authentication, Twitter और GitHub जैसे तीसरे पक्ष की सेवा देने वाली कंपनियों के सुरक्षित क्रेडेंशियल का इस्तेमाल करता है.
Authentication एमुलेटर, Google और Apple जैसी OpenID Connect सेवा देने वाली कंपनियों के असली क्रेडेंशियल स्वीकार करता है. OpenID Connect प्रोवाइडर के अलावा किसी अन्य प्रोवाइडर के क्रेडेंशियल इस्तेमाल नहीं किए जा सकते.
ईमेल / एसएमएस से साइन इन करना
प्रोडक्शन ऐप्लिकेशन में, ईमेल और मैसेज (एसएमएस) साइन-इन फ़्लो में एक एसिंक्रोनस ऑपरेशन शामिल होता है. इसमें उपयोगकर्ता को मिले मैसेज की जांच करता है और साइन-इन इंटरफ़ेस में लॉगिन कोड डालता है. Authentication एमुलेटर कोई ईमेल या एसएमएस मैसेज नहीं भेजता. हालांकि, जैसा कि ऊपर बताया गया है, यह लॉगिन कोड जनरेट करता है और उन्हें टेस्टिंग के लिए टर्मिनल पर भेजता है.
एम्युलेटर, तय लॉगिन कोड वाले टेस्ट फ़ोन नंबर तय करने की सुविधा नहीं देता, जैसा कि Firebase कंसोल का इस्तेमाल करके किया जा सकता है.
कस्टम टोकन की मदद से पुष्टि करना
Authentication एमुलेटर, कस्टम टोकन के हस्ताक्षर या समयसीमा की पुष्टि नहीं करता. इससे, आपको हाथ से बनाए गए टोकन इस्तेमाल करने की सुविधा मिलती है. साथ ही, प्रोटोटाइप बनाने और टेस्टिंग के दौरान, टोकन का बार-बार इस्तेमाल किया जा सकता है.
अनुरोधों की संख्या सीमित करना / गलत इस्तेमाल को रोकना
Authentication एम्युलेटर, प्रोडक्शन रेट को सीमित करने या गलत इस्तेमाल को रोकने वाली सुविधाओं की नकल नहीं करता.
ब्लॉक करने वाले फ़ंक्शन
प्रोडक्शन में, beforeCreate
और beforeSignIn
, दोनों इवेंट ट्रिगर होने के बाद उपयोगकर्ताओं को एक बार स्टोरेज में सेव किया जाता है. हालांकि, तकनीकी सीमाओं की वजह से,
Authentication एमुलेटर, स्टोर में दो बार डेटा लिखता है. पहला, उपयोगकर्ता बनाने के बाद और दूसरा, साइन इन करने के बाद. इसका मतलब है कि नए उपयोगकर्ताओं के लिए, Authentication एमुलेटर में beforeSignIn
में getAuth().getUser()
को कॉल किया जा सकता है. हालांकि, प्रोडक्शन में ऐसा करने पर आपको गड़बड़ी का मैसेज मिलेगा.
आगे क्या करना है?
वीडियो के चुने गए सेट और 'कैसे करें' के उदाहरणों के बारे में ज़्यादा जानने के लिए, Firebase एमुलेटर ट्रेनिंग प्लेलिस्ट देखें.
ट्रिगर किए गए फ़ंक्शन, Authentication के साथ एक सामान्य इंटिग्रेशन हैं. इसलिए, फ़ंक्शन को स्थानीय तौर पर चलाएं पर जाकर, Firebase एमुलेटर के लिए Cloud Functions के बारे में ज़्यादा जानें.