पासवर्ड फिर सेट करने या उपयोगकर्ता के ईमेल की पुष्टि करने के लिए, ईमेल से जुड़ी कार्रवाइयां भेजते समय, यूआरएल पर जारी रखें के ज़रिए, स्थिति की जानकारी दी जा सकती है. इससे, कार्रवाई पूरी होने के बाद उपयोगकर्ता को ऐप्लिकेशन पर वापस जाने की सुविधा मिलती है. इसके अलावा, यह भी तय किया जा सकता है कि वेब पेज के बजाय, इंस्टॉल किए जाने पर ईमेल से जुड़ी कार्रवाई करने के लिंक को सीधे किसी मोबाइल ऐप्लिकेशन से हैंडल किया जाए या नहीं.
यह सुविधा, इन सामान्य स्थितियों में बहुत काम आ सकती है:
कोई ऐसा उपयोगकर्ता जो फ़िलहाल लॉग इन नहीं है, ऐसा कॉन्टेंट ऐक्सेस करने की कोशिश कर सकता है जिसके लिए उपयोगकर्ता को लॉग इन करना ज़रूरी है. हालांकि, हो सकता है कि उपयोगकर्ता अपना पासवर्ड भूल गया हो. इसलिए, वह पासवर्ड रीसेट करने की प्रोसेस शुरू कर सकता है. प्रोसेस पूरी होने के बाद, उपयोगकर्ता को उम्मीद होती है कि वह ऐप्लिकेशन के उस सेक्शन पर वापस जाएगा जिसे वह ऐक्सेस करने की कोशिश कर रहा था.
कोई ऐप्लिकेशन, सिर्फ़ पुष्टि किए गए खातों को ऐक्सेस करने की सुविधा दे सकता है. उदाहरण के लिए, न्यूज़लेटर ऐप्लिकेशन के लिए, उपयोगकर्ता को सदस्यता लेने से पहले अपने ईमेल की पुष्टि करनी पड़ सकती है. उपयोगकर्ता, ईमेल पते की पुष्टि करने की प्रोसेस पूरी करेगा और उसे उम्मीद होगी कि सदस्यता पूरी करने के लिए वह ऐप्लिकेशन पर वापस जाएगा.
आम तौर पर, जब कोई उपयोगकर्ता Apple के किसी ऐप्लिकेशन पर पासवर्ड फिर सेट करने या ईमेल पते की पुष्टि करने का फ़्लो शुरू करता है, तो उसे उम्मीद होती है कि वह फ़्लो ऐप्लिकेशन में ही पूरा होगा. यूआरएल पर जारी रखें के ज़रिए, स्थिति की जानकारी देने की सुविधा से ऐसा करना मुमकिन हो पाता है.
'जारी रखें' यूआरएल के ज़रिए, स्थिति की जानकारी देने की सुविधा, Firebase Auth की एक अहम सुविधा है. इससे उपयोगकर्ता अनुभव को बेहतर बनाया जा सकता है.
ईमेल से जुड़ी कार्रवाइयों में, स्थिति की जानकारी/यूआरएल पर जारी रखें देना
'जारी रखें' यूआरएल को सुरक्षित तरीके से भेजने के लिए, आपको यूआरएल के डोमेन को अनुमति वाले डोमेन के तौर पर जोड़ना होगा:
Firebase कंसोल में, सुरक्षा > पुष्टि करना > सेटिंग टैब पर जाएं.
अनुमति वाले डोमेन सेक्शन में, डोमेन जोड़ें पर क्लिक करें. इसके बाद, यूआरएल जोड़ें.
पासवर्ड फिर सेट करने या पुष्टि के लिए भेजा गया ईमेल भेजते समय, ActionCodeSettings इंस्टेंस देना ज़रूरी है. इस इंटरफ़ेस में, ये पैरामीटर इस्तेमाल किए जाते हैं:
| पैरामीटर | टाइप | ब्यौरा | |||
|---|---|---|---|---|---|
url |
स्ट्रिंग | यह लिंक (स्थिति/यूआरएल पर जारी रखें) सेट करता है, जिसके अलग-अलग कॉन्टेक्स्ट में अलग-अलग मतलब होते हैं:
|
|||
iOSBundleId |
स्ट्रिंग | यह बंडल आईडी सेट करता है. अगर Apple का कोई ऐप्लिकेशन इंस्टॉल है, तो यह उसमें लिंक खोलने की कोशिश करेगा, अगर वह इंस्टॉल है. ऐप्लिकेशन को कंसोल में रजिस्टर करना ज़रूरी है. अगर कोई बंडल आईडी नहीं दिया जाता है, तो इस फ़ील्ड की वैल्यू, ऐप्लिकेशन के मुख्य बंडल के बंडल आईडी पर सेट हो जाती है. | |||
androidPackageName |
स्ट्रिंग | यह Android पैकेज का नाम सेट करता है. अगर Android का कोई ऐप्लिकेशन इंस्टॉल है, तो यह उसमें लिंक खोलने की कोशिश करेगा. | |||
androidInstallApp |
बूलियन | इससे यह तय होता है कि अगर डिवाइस, Android ऐप्लिकेशन के साथ काम करता है और वह पहले से इंस्टॉल नहीं है, तो उसे इंस्टॉल किया जाए या नहीं. अगर packageName के बिना यह फ़ील्ड दिया जाता है, तो एक गड़बड़ी दिखती है. इसमें बताया जाता है कि इस फ़ील्ड के साथ packageName देना ज़रूरी है. | |||
androidMinimumVersion |
स्ट्रिंग | ऐप्लिकेशन का वह कम से कम वर्शन जो इस प्रोसेस में काम करता है. अगर minimumVersion तय किया जाता है और ऐप्लिकेशन का कोई पुराना वर्शन इंस्टॉल है, तो उपयोगकर्ता को ऐप्लिकेशन अपग्रेड करने के लिए Play Store पर ले जाया जाता है. Android ऐप्लिकेशन को कंसोल में रजिस्टर करना ज़रूरी है. | |||
handleCodeInApp |
बूलियन | इससे यह तय होता है कि ईमेल से जुड़ी कार्रवाई करने का लिंक, पहले किसी मोबाइल ऐप्लिकेशन में खुलेगा या वेब लिंक में. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होता है. इसे 'सही' पर सेट करने पर, कार्रवाई के कोड का लिंक यूनिवर्सल लिंक या Android ऐप्लिकेशन लिंक के तौर पर भेजा जाएगा. अगर ऐप्लिकेशन इंस्टॉल है, तो वह लिंक को खोलेगा . अगर इसे 'गलत' पर सेट किया जाता है, तो कोड पहले वेब विजेट को भेजा जाएगा. इसके बाद, 'जारी रखें' पर क्लिक करने पर, अगर ऐप्लिकेशन इंस्टॉल है, तो उपयोगकर्ता को उस पर रीडायरेक्ट किया जाएगा. | |||
dynamicLinkDomain |
स्ट्रिंग | (अब काम नहीं करता, इसके बजाय `linkDomain` का इस्तेमाल करें) इससे डाइनैमिक लिंक का डोमेन (या सबडोमेन) सेट होता है. इसका इस्तेमाल, मौजूदा लिंक के लिए तब किया जाता है, जब उसे Firebase डाइनैमिक लिंक का इस्तेमाल करके खोला जाना हो. हर प्रोजेक्ट के लिए, डाइनैमिक लिंक के एक से ज़्यादा डोमेन कॉन्फ़िगर किए जा सकते हैं. इस फ़ील्ड की मदद से, इनमें से किसी एक को साफ़ तौर पर चुना जा सकता है. अगर कोई डोमेन नहीं दिया जाता है, तो डिफ़ॉल्ट रूप से पहले डोमेन का इस्तेमाल किया जाता है. | linkDomain |
स्ट्रिंग | यह Firebase होस्टिंग का कोई ऐसा कस्टम डोमेन है जिसका इस्तेमाल तब किया जाता है, जब लिंक को किसी खास मोबाइल ऐप्लिकेशन के ज़रिए खोला जाना हो. डोमेन को Firebase होस्टिंग में कॉन्फ़िगर किया जाना चाहिए और वह प्रोजेक्ट के मालिकाना हक में होना चाहिए. यह डिफ़ॉल्ट होस्टिंग डोमेन (`web.app` या `firebaseapp.com`) नहीं हो सकता. यह, अब काम न करने वाली `dynamicLinkDomain` सेटिंग की जगह लेता है. |
यहां दिए गए उदाहरण में, ईमेल की पुष्टि करने का एक लिंक भेजने का तरीका बताया गया है. यह लिंक, Firebase डाइनैमिक लिंक के तौर पर, पहले किसी मोबाइल ऐप्लिकेशन में खुलेगा. इसके लिए, डाइनैमिक लिंक के कस्टम डोमेन example.page.link का इस्तेमाल किया गया है. इसमें iOS ऐप्लिकेशन com.example.ios या Android ऐप्लिकेशन com.example.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 कंसोल में, डाइनैमिक लिंक सेक्शन खोलें.
अगर आपने अब तक डाइनैमिक लिंक की शर्तें स्वीकार नहीं की हैं और डाइनैमिक लिंक का डोमेन नहीं बनाया है, तो अब ऐसा करें.
अगर आपने पहले ही डाइनैमिक लिंक का डोमेन बना लिया है, तो उसे नोट कर लें. डाइनैमिक लिंक का डोमेन आम तौर पर, यहां दिए गए उदाहरण की तरह दिखता है:
example.page.link
Apple या Android ऐप्लिकेशन को आने वाले लिंक को इंटरसेप्ट करने के लिए कॉन्फ़िगर करते समय, आपको इस वैल्यू की ज़रूरत होगी.
Android ऐप्लिकेशन कॉन्फ़िगर करना:
- अगर आपको इन लिंक को अपने Android ऐप्लिकेशन से हैंडल करना है, तो Firebase कंसोल की प्रोजेक्ट सेटिंग में, 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 लिंक होगा. इसका पेलोड, URL तय किया गया ActionCodeSettings
ऑब्जेक्ट होगा. आपके पास, किसी भी अतिरिक्त डिपेंडेंसी के बिना, अपने ऐप्लिकेशन से आने वाले लिंक को इंटरसेप्ट करने और हैंडल करने का विकल्प होता है. हालांकि, हमारा सुझाव है कि डीप लिंक को पार्स करने के लिए, FDL क्लाइंट लाइब्रेरी का इस्तेमाल करें.
ईमेल की पुष्टि करने जैसी ईमेल से जुड़ी कार्रवाइयों को हैंडल करते समय, डीप लिंक से oobCode क्वेरी पैरामीटर में मौजूद कार्रवाई के कोड को पार्स करना होगा. इसके बाद, बदलाव लागू करने के लिए, यानी ईमेल की पुष्टि करने के लिए, इसे applyActionCode के ज़रिए लागू करना होगा.
मोबाइल ऐप्लिकेशन में, ईमेल से जुड़ी कार्रवाइयां हैंडल करना
आपके पास यह तय करने का विकल्प होता है कि आपको कार्रवाई के कोड का लिंक, पहले अपने मोबाइल ऐप्लिकेशन में हैंडल करना है या नहीं. हालांकि, इसके लिए ऐप्लिकेशन इंस्टॉल होना चाहिए. Android ऐप्लिकेशन के लिए, आपके पास androidInstallApp के ज़रिए यह तय करने का विकल्प भी होता है कि अगर डिवाइस, ऐप्लिकेशन के साथ काम करता है और वह पहले से इंस्टॉल नहीं है, तो उसे इंस्टॉल किया जाए या नहीं.
अगर लिंक पर किसी ऐसे डिवाइस से क्लिक किया जाता है जो मोबाइल ऐप्लिकेशन के साथ काम नहीं करता है, तो वह वेब पेज से खुलता है.
इसके लिए, ActionCodeSettings ऑब्जेक्ट में handleCodeInApp को true पर सेट किया जाता है. मोबाइल ऐप्लिकेशन का Android पैकेज का नाम या बंडल आईडी भी तय करना होगा.अगर कोई मोबाइल ऐप्लिकेशन उपलब्ध नहीं है, तो यहां इस्तेमाल किया गया फ़ॉलबैक वेब यूआरएल, ईमेल से जुड़ी कार्रवाई के टेंप्लेट वाले सेक्शन में कॉन्फ़िगर किया गया यूआरएल है. सभी प्रोजेक्ट के लिए, एक डिफ़ॉल्ट यूआरएल उपलब्ध कराया जाता है. ईमेल से जुड़ी कार्रवाई के हैंडलर को पसंद के मुताबिक बनाने का तरीका जानने के लिए,
ईमेल हैंडलर को पसंद के मुताबिक बनाना लेख देखें.
इस मामले में, उपयोगकर्ता को भेजा गया मोबाइल ऐप्लिकेशन का लिंक, FDL लिंक होगा. इसका पेलोड, कार्रवाई के कोड का यूआरएल होगा. इसे कंसोल में, क्वेरी पैरामीटर oobCode, mode, apiKey, और continueUrl के साथ कॉन्फ़िगर किया गया है. बाद वाला, ActionCodeSettings ऑब्जेक्ट में तय किया गया ओरिजनल URL होगा. आपके पास, किसी भी अतिरिक्त डिपेंडेंसी के बिना, अपने ऐप्लिकेशन से आने वाले लिंक को इंटरसेप्ट करने और हैंडल करने का विकल्प होता है. हालांकि, हमारा सुझाव है कि डीप लिंक को पार्स करने के लिए, FDL क्लाइंट लाइब्रेरी का इस्तेमाल करें. कार्रवाई के कोड को सीधे किसी मोबाइल ऐप्लिकेशन से लागू किया जा सकता है. यह ठीक उसी तरह से काम करता है जैसे
ईमेल हैंडलर को पसंद के मुताबिक बनाना
सेक्शन में बताए गए वेब फ़्लो से हैंडल किया जाता है.
ईमेल की पुष्टि करने जैसी ईमेल से जुड़ी कार्रवाइयों को हैंडल करते समय, डीप लिंक से oobCode क्वेरी पैरामीटर में मौजूद कार्रवाई के कोड को पार्स करना होगा. इसके बाद, बदलाव लागू करने के लिए, यानी ईमेल की पुष्टि करने के लिए, इसे applyActionCode के ज़रिए लागू करना होगा.