पासवर्ड रीसेट करने या उपयोगकर्ता के ईमेल की पुष्टि करने के लिए, ईमेल से जुड़ी कार्रवाइयां भेजते समय, यूआरएल पर जारी रखें के ज़रिए स्थिति पास की जा सकती है. इससे उपयोगकर्ता को कार्रवाई पूरी होने के बाद, ऐप्लिकेशन पर वापस जाने की सुविधा मिलती है. इसके अलावा, यह भी तय किया जा सकता है कि जब मोबाइल ऐप्लिकेशन इंस्टॉल हो, तब ईमेल कार्रवाई करने का लिंक को वेब पेज के बजाय सीधे तौर पर मोबाइल ऐप्लिकेशन से हैंडल किया जाए या नहीं.
यह सुविधा, इन सामान्य स्थितियों में बहुत मददगार हो सकती है:
ऐसा हो सकता है कि कोई ऐसा व्यक्ति कॉन्टेंट ऐक्सेस करने की कोशिश कर रहा हो जिसने अभी लॉग इन नहीं किया है. हालांकि, इस कॉन्टेंट को ऐक्सेस करने के लिए, लॉग इन करना ज़रूरी है. हालांकि, ऐसा हो सकता है कि उपयोगकर्ता अपना पासवर्ड भूल गया हो. इसलिए, वह पासवर्ड रीसेट करने का अनुरोध कर सकता है. फ़्लो के आखिर में, उपयोगकर्ता को ऐप्लिकेशन के उस सेक्शन पर वापस जाने की उम्मीद होती है जिसे वह ऐक्सेस करने की कोशिश कर रहा था.
कोई ऐप्लिकेशन, सिर्फ़ पुष्टि किए गए खातों का ऐक्सेस दे सकता है. उदाहरण के लिए, न्यूज़लेटर ऐप्लिकेशन में सदस्यता लेने से पहले, उपयोगकर्ता को अपने ईमेल पते की पुष्टि करनी पड़ सकती है. उपयोगकर्ता को ईमेल पते की पुष्टि करने की प्रोसेस पूरी करनी होगी. इसके बाद, उसे सदस्यता लेने की प्रोसेस पूरी करने के लिए ऐप्लिकेशन पर वापस भेज दिया जाएगा.
आम तौर पर, जब कोई उपयोगकर्ता Apple के किसी ऐप्लिकेशन पर पासवर्ड फिर सेट करने या ईमेल पते की पुष्टि करने का फ़्लो शुरू करता है, तो वह चाहता है कि यह फ़्लो ऐप्लिकेशन में ही पूरा हो जाए. यूआरएल पर जारी रखें के ज़रिए स्टेट को पास करने की सुविधा से ऐसा करना मुमकिन हो पाता है.
यूआरएल पर जारी रखें के ज़रिए स्टेट को पास करने की सुविधा, Firebase पुष्टिकरण की एक अहम सुविधा है. इससे उपयोगकर्ता अनुभव को बेहतर बनाया जा सकता है.
ईमेल से जुड़ी कार्रवाइयों में स्टेट/यूआरएल पर जारी रखें पास करना
जारी रखने के यूआरएल को सुरक्षित तरीके से पास करने के लिए, आपको यूआरएल के डोमेन को अनुमति वाले डोमेन के तौर पर जोड़ना होगा:
Firebase console में, सुरक्षा > पुष्टि करें > सेटिंग टैब पर जाएं.
अनुमति वाले डोमेन सेक्शन में जाकर, डोमेन जोड़ें पर क्लिक करें. इसके बाद, यूआरएल जोड़ें.
पासवर्ड फिर सेट करने या पुष्टि के लिए भेजा गया ईमेल भेजते समय, ActionCodeSettings इंस्टेंस देना ज़रूरी है. यह इंटरफ़ेस, इन पैरामीटर का इस्तेमाल करता है:
| पैरामीटर | टाइप | ब्यौरा | |||
|---|---|---|---|---|---|
url |
स्ट्रिंग | यह लिंक (स्टेट/जारी रखने का यूआरएल) सेट करता है. इसका मतलब अलग-अलग कॉन्टेक्स्ट में अलग-अलग होता है:
|
|||
iOSBundleId |
स्ट्रिंग | यह कुकी, बंडल आईडी सेट करती है. अगर Apple का ऐप्लिकेशन इंस्टॉल है, तो इस लिंक को उसमें खोलने की कोशिश की जाएगी. ऐप्लिकेशन को Console में रजिस्टर करना ज़रूरी है. अगर कोई बंडल आईडी नहीं दिया गया है, तो इस फ़ील्ड की वैल्यू को ऐप्लिकेशन के मुख्य बंडल के बंडल आईडी पर सेट किया जाता है. | |||
androidPackageName |
स्ट्रिंग | Android पैकेज का नाम सेट करता है. इससे लिंक को Android ऐप्लिकेशन में खोलने की कोशिश की जाएगी. हालांकि, ऐसा सिर्फ़ तब होगा, जब ऐप्लिकेशन इंस्टॉल हो. | |||
androidInstallApp |
बूलियन | इससे यह तय किया जाता है कि अगर डिवाइस पर Android ऐप्लिकेशन काम करता है और वह पहले से इंस्टॉल नहीं है, तो उसे इंस्टॉल करना है या नहीं. अगर इस फ़ील्ड को packageName के बिना दिया जाता है, तो एक गड़बड़ी का मैसेज दिखता है. इसमें बताया जाता है कि इस फ़ील्ड के साथ packageName देना ज़रूरी है. | |||
androidMinimumVersion |
स्ट्रिंग | ऐप्लिकेशन का वह कम से कम वर्शन जो इस फ़्लो में काम करता है. अगर minimumVersion तय किया गया है और ऐप्लिकेशन का पुराना वर्शन इंस्टॉल है, तो उपयोगकर्ता को Play Store पर ले जाया जाता है, ताकि वह ऐप्लिकेशन को अपग्रेड कर सके. Android ऐप्लिकेशन को Console में रजिस्टर करना ज़रूरी है. | |||
handleCodeInApp |
बूलियन | ईमेल कार्रवाई करने का लिंक को पहले मोबाइल ऐप्लिकेशन में खोला जाएगा या वेब लिंक में. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होता है. इस विकल्प को 'सही है' पर सेट करने पर, ऐक्शन कोड लिंक को यूनिवर्सल लिंक या Android ऐप्लिकेशन लिंक के तौर पर भेजा जाएगा. साथ ही, अगर ऐप्लिकेशन इंस्टॉल है, तो उसे ऐक्शन कोड लिंक से खोला जाएगा. गलत होने पर, कोड को सबसे पहले वेब विजेट पर भेजा जाएगा. इसके बाद, जारी रखने पर ऐप्लिकेशन इंस्टॉल होने पर, उसे रीडायरेक्ट कर दिया जाएगा. | |||
dynamicLinkDomain |
स्ट्रिंग | (अब काम नहीं करता, `linkDomain` का इस्तेमाल करें) इस विकल्प का इस्तेमाल करके, डाइनैमिक लिंक का डोमेन (या सबडोमेन) सेट किया जाता है. इसका इस्तेमाल मौजूदा लिंक के लिए किया जाता है. ऐसा तब किया जाता है, जब लिंक को Firebase डाइनैमिक लिंक का इस्तेमाल करके खोला जाना हो. हर प्रोजेक्ट के लिए, एक से ज़्यादा डाइनैमिक लिंक डोमेन कॉन्फ़िगर किए जा सकते हैं. इसलिए, इस फ़ील्ड की मदद से, कोई एक डोमेन चुना जा सकता है. अगर कोई डोमेन नहीं दिया जाता है, तो पहले डोमेन का इस्तेमाल डिफ़ॉल्ट रूप से किया जाता है. | linkDomain |
स्ट्रिंग | यह Firebase Hosting का कस्टम डोमेन है. इसका इस्तेमाल तब किया जाता है, जब लिंक को किसी मोबाइल ऐप्लिकेशन के ज़रिए खोला जाना हो. डोमेन को Firebase Hosting में कॉन्फ़िगर किया जाना चाहिए. साथ ही, उसका मालिकाना हक प्रोजेक्ट के पास होना चाहिए. यह डिफ़ॉल्ट होस्टिंग डोमेन (`web.app` या `firebaseapp.com`) नहीं हो सकता. यह सेटिंग, बंद की जा चुकी `dynamicLinkDomain` सेटिंग की जगह इस्तेमाल की जाती है. |
यहां दिए गए उदाहरण में, ईमेल से पुष्टि करने वाले लिंक को भेजने का तरीका बताया गया है. यह लिंक, सबसे पहले मोबाइल ऐप्लिकेशन में Firebase डाइनैमिक लिंक के तौर पर खुलेगा. इसके लिए, कस्टम डाइनैमिक लिंक डोमेन example.page.link का इस्तेमाल किया जाएगा. com.example.ios iOS ऐप्लिकेशन या com.example.android Android ऐप्लिकेशन में, अगर ऐप्लिकेशन पहले से इंस्टॉल नहीं है, तो इंस्टॉल हो जाएगा. साथ ही, इसका वर्शन कम से कम 12 होना चाहिए. डीप लिंक में, जारी रखने वाले यूआरएल का पेलोड https://www.example.com/?email=user@example.com शामिल होगा.
final user = FirebaseAuth.instance.currentUser;
final actionCodeSettings = ActionCodeSettings(
url: "http://www.example.com/verify?email=${user?.email}",
iOSBundleId: "com.example.ios",
androidPackageName: "com.example.android",
);
await user?.sendEmailVerification(actionCodeSettings);
Firebase डाइनैमिक लिंक को कॉन्फ़िगर करना
Firebase Auth, मोबाइल ऐप्लिकेशन में खोले जाने वाले लिंक को भेजते समय Firebase डाइनैमिक लिंक का इस्तेमाल करता है. इस सुविधा का इस्तेमाल करने के लिए, Firebase कंसोल में डाइनैमिक लिंक कॉन्फ़िगर किए जाने चाहिए.
Firebase डाइनैमिक लिंक चालू करें:
Firebase कंसोल में, डाइनैमिक लिंक सेक्शन खोलें.
अगर आपने अब तक डाइनैमिक लिंक की शर्तें स्वीकार नहीं की हैं और डाइनैमिक लिंक डोमेन नहीं बनाया है, तो अभी ऐसा करें.
अगर आपने पहले से ही कोई Dynamic Links डोमेन बनाया है, तो उसे नोट कर लें. आम तौर पर, Dynamic Links डोमेन इस उदाहरण की तरह दिखता है:
example.page.link
आने वाले लिंक को इंटरसेप्ट करने के लिए, Apple या Android ऐप्लिकेशन को कॉन्फ़िगर करते समय आपको इस वैल्यू की ज़रूरत होगी.
Android ऐप्लिकेशन कॉन्फ़िगर करना:
- अगर आपको अपने Android ऐप्लिकेशन से इन लिंक को मैनेज करना है, तो Firebase Console की प्रोजेक्ट सेटिंग में Android पैकेज का नाम डालना होगा. इसके अलावा, ऐप्लिकेशन के सर्टिफ़िकेट का SHA-1 और SHA-256 भी देना होगा.
- आपको AndroidManifest.xml फ़ाइल में, डीप लिंक के लिए इंटेंट फ़िल्टर भी कॉन्फ़िगर करना होगा.
- इस बारे में ज़्यादा जानने के लिए, Android डाइनैमिक लिंक पाने के निर्देश देखें.
Apple के ऐप्लिकेशन कॉन्फ़िगर करना:
- अगर आपको अपने ऐप्लिकेशन से इन लिंक को मैनेज करना है, तो Firebase कंसोल की प्रोजेक्ट सेटिंग में बंडल आईडी डालना होगा. इसके अलावा, App Store का आईडी और Apple Developer Team का आईडी भी देना ज़रूरी है.
- आपको अपने ऐप्लिकेशन की सुविधाओं में, FDL यूनिवर्सल लिंक डोमेन को असोसिएटेड डोमेन के तौर पर भी कॉन्फ़िगर करना होगा.
- अगर आपको अपने ऐप्लिकेशन को iOS 8 और इससे पहले के वर्शन पर डिस्ट्रिब्यूट करना है, तो आपको आने वाले यूआरएल के लिए, बंडल आईडी को कस्टम स्कीम के तौर पर सेट करना होगा.
- इस बारे में ज़्यादा जानने के लिए, Apple प्लैटफ़ॉर्म पर डाइनैमिक लिंक पाने से जुड़े निर्देश देखें.
वेब ऐप्लिकेशन में ईमेल से जुड़ी कार्रवाइयों को मैनेज करना
आपके पास यह तय करने का विकल्प होता है कि आपको कार्रवाई के कोड वाले लिंक को पहले वेब ऐप्लिकेशन से हैंडल करना है या नहीं. अगर हैंडल करना है, तो कार्रवाई पूरी होने के बाद, आपको किसी दूसरे वेब पेज या मोबाइल ऐप्लिकेशन पर रीडायरेक्ट करना है या नहीं. हालांकि, ऐसा तब ही किया जा सकता है, जब मोबाइल ऐप्लिकेशन उपलब्ध हो.
इसके लिए, ActionCodeSettings ऑब्जेक्ट में handleCodeInApp को false पर सेट किया जाता है. बंडल आईडी या Android पैकेज का नाम देना ज़रूरी नहीं है. हालांकि, इन्हें देने से उपयोगकर्ता को ईमेल ऐक्शन कोड पूरा होने पर, बताए गए ऐप्लिकेशन पर वापस रीडायरेक्ट करने की अनुमति मिल जाएगी.
यहां इस्तेमाल किया गया वेब यूआरएल, ईमेल ऐक्शन टेंप्लेट सेक्शन में कॉन्फ़िगर किया गया यूआरएल है. सभी प्रोजेक्ट के लिए, डिफ़ॉल्ट रूप से एक उपलब्ध कराया जाता है. ईमेल ऐक्शन हैंडलर को पसंद के मुताबिक बनाने के तरीके के बारे में ज़्यादा जानने के लिए, ईमेल हैंडलर को पसंद के मुताबिक बनाना लेख पढ़ें.
इस मामले में, continueURL क्वेरी पैरामीटर में मौजूद लिंक, एक FDL लिंक होगा. इसका पेलोड, ActionCodeSettings ऑब्जेक्ट में दिया गया URL होगा. आपके पास, किसी भी अतिरिक्त डिपेंडेंसी के बिना, अपने ऐप्लिकेशन से आने वाले लिंक को इंटरसेप्ट करने और उसे मैनेज करने का विकल्प होता है. हालांकि, हमारा सुझाव है कि आप डीप लिंक को पार्स करने के लिए, FDL क्लाइंट लाइब्रेरी का इस्तेमाल करें.
ईमेल की पुष्टि करने जैसी ईमेल से जुड़ी कार्रवाइयों को मैनेज करते समय, oobCode क्वेरी पैरामीटर से मिले ऐक्शन कोड को डीप लिंक से पार्स करना होता है.इसके बाद, बदलाव को लागू करने के लिए applyActionCode के ज़रिए इसे लागू करना होता है. जैसे, पुष्टि किया जाने वाला ईमेल.
मोबाइल ऐप्लिकेशन में ईमेल से जुड़ी कार्रवाइयों को मैनेज करना
आपके पास यह तय करने का विकल्प होता है कि क्या आपको ऐक्शन कोड लिंक को सबसे पहले अपने मोबाइल ऐप्लिकेशन में हैंडल करना है. हालांकि, इसके लिए यह ज़रूरी है कि ऐप्लिकेशन इंस्टॉल हो. Android ऐप्लिकेशन के लिए, androidInstallApp के ज़रिए यह भी तय किया जा सकता है कि अगर डिवाइस पर ऐप्लिकेशन काम करता है और वह पहले से इंस्टॉल नहीं है, तो उसे इंस्टॉल किया जाए.
अगर लिंक पर क्लिक ऐसे डिवाइस से किया जाता है जिस पर मोबाइल ऐप्लिकेशन काम नहीं करता, तो इसे वेब पेज से खोला जाता है.
इसके लिए, ActionCodeSettings ऑब्जेक्ट में handleCodeInApp को true पर सेट किया जाता है. मोबाइल ऐप्लिकेशन के Android पैकेज का नाम या बंडल आईडी भी बताना होगा.अगर कोई मोबाइल ऐप्लिकेशन उपलब्ध नहीं है, तो यहां इस्तेमाल किया गया फ़ॉलबैक वेब यूआरएल, ईमेल ऐक्शन टेंप्लेट सेक्शन में कॉन्फ़िगर किया गया यूआरएल होता है. सभी प्रोजेक्ट के लिए, डिफ़ॉल्ट रूप से एक उपलब्ध कराया जाता है. ईमेल ऐक्शन हैंडलर को पसंद के मुताबिक बनाने के तरीके के बारे में ज़्यादा जानने के लिए, ईमेल हैंडलर को पसंद के मुताबिक बनाना लेख पढ़ें.
इस मामले में, उपयोगकर्ता को भेजा गया मोबाइल ऐप्लिकेशन लिंक, एक FDL लिंक होगा. इसका पेलोड, Console में कॉन्फ़िगर किया गया ऐक्शन कोड यूआरएल होगा. इसमें क्वेरी पैरामीटर oobCode, mode, apiKey, और continueUrl शामिल होंगे. बाद वाला, ActionCodeSettings ऑब्जेक्ट में दिया गया ओरिजनल URL होगा. आपके पास अपने ऐप्लिकेशन से आने वाले लिंक को इंटरसेप्ट करने और उसे हैंडल करने का विकल्प होता है. इसके लिए, आपको किसी अन्य डिपेंडेंसी की ज़रूरत नहीं होती. हालांकि, हम आपको डीप लिंक को पार्स करने के लिए, FDL क्लाइंट लाइब्रेरी का इस्तेमाल करने का सुझाव देते हैं. ऐक्शन कोड को सीधे तौर पर मोबाइल ऐप्लिकेशन से लागू किया जा सकता है. इसे उसी तरह से मैनेज किया जाता है जिस तरह ईमेल हैंडलर को पसंद के मुताबिक बनाना सेक्शन में बताए गए वेब फ़्लो से मैनेज किया जाता है.
ईमेल की पुष्टि करने जैसी ईमेल से जुड़ी कार्रवाइयों को मैनेज करते समय, oobCode क्वेरी पैरामीटर से मिले ऐक्शन कोड को डीप लिंक से पार्स करना होता है.इसके बाद, बदलाव को लागू करने के लिए applyActionCode के ज़रिए इसे लागू करना होता है. जैसे, पुष्टि किया जाने वाला ईमेल.