ईमेल कार्रवाइयों में पास होने की स्थिति

पासवर्ड रीसेट करने या उपयोगकर्ता के ईमेल पते की पुष्टि करने के लिए ईमेल कार्रवाइयां भेजते समय, 'जारी रखें' यूआरएल की मदद से स्टेटस पास किया जा सकता है. इससे उपयोगकर्ता को कार्रवाई पूरी होने के बाद, ऐप्लिकेशन पर वापस जाने की सुविधा मिलती है. इसके अलावा, यह भी तय किया जा सकता है कि ईमेल ऐक्शन लिंक को सीधे मोबाइल ऐप्लिकेशन से मैनेज किया जाए या वेब पेज के बजाय इंस्टॉल किया गया मोबाइल ऐप्लिकेशन.

यह सुविधा, इन सामान्य स्थितियों में काफ़ी मददगार साबित हो सकती है:

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

  • कोई ऐप्लिकेशन, सिर्फ़ पुष्टि किए गए खातों का ऐक्सेस दे सकता है. उदाहरण के लिए, किसी न्यूज़लेटर ऐप्लिकेशन में सदस्यता लेने से पहले, उपयोगकर्ता को अपने ईमेल पते की पुष्टि करनी पड़ सकती है. उपयोगकर्ता को ईमेल पते की पुष्टि करने के लिए कहा जाएगा. इसके बाद, उसे सदस्यता लेने के लिए ऐप्लिकेशन पर वापस भेजा जाएगा.

  • आम तौर पर, जब कोई उपयोगकर्ता Apple ऐप्लिकेशन पर पासवर्ड रीसेट करने या ईमेल पते की पुष्टि करने की प्रोसेस शुरू करता है, तो वह उम्मीद करता है कि वह ऐप्लिकेशन में ही प्रोसेस पूरी कर पाएगा. 'जारी रखें' यूआरएल की मदद से स्टेटस पास करने की सुविधा की वजह से, ऐसा करना संभव है.

'जारी रखें' यूआरएल की मदद से स्टेटस पास करने की सुविधा, Firebase Auth की एक बेहतरीन सुविधा है. इससे उपयोगकर्ता अनुभव को बेहतर बनाया जा सकता है.

ईमेल कार्रवाइयों में स्टेटस/जारी रखने का यूआरएल पास करना

'जारी रखें' यूआरएल को सुरक्षित तरीके से पास करने के लिए, यूआरएल के डोमेन को Firebase कंसोल में अनुमति वाली सूची में शामिल करना होगा. इसके लिए, पुष्टि सेक्शन में जाएं. अगर यह डोमेन पहले से साइन इन करने के तरीके टैब में मौजूद अनुमति वाले डोमेन की सूची में नहीं है, तो इसे जोड़ें.

पासवर्ड रीसेट करने का ईमेल या पुष्टि करने वाला ईमेल भेजते समय, ActionCodeSettings का एक इंस्टेंस देना ज़रूरी है. यह इंटरफ़ेस इन पैरामीटर का इस्तेमाल करता है:

पैरामीटर टाइप ब्यौरा
url स्ट्रिंग

लिंक (स्टेटस/जारी रखें यूआरएल) सेट करता है, जिसका अलग-अलग संदर्भों में अलग-अलग मतलब होता है:

  • जब लिंक को वेब ऐक्शन विजेट में मैनेज किया जाता है, तो यह continueUrl क्वेरी पैरामीटर में डीप लिंक होता है.
  • जब लिंक को सीधे ऐप्लिकेशन में मैनेज किया जाता है, तो यह डाइनैमिक लिंक के डीप लिंक में continueUrl क्वेरी पैरामीटर होता है.
iOSBundleId स्ट्रिंग बंडल आईडी सेट करता है. इससे, लिंक को Apple के किसी ऐप्लिकेशन में खोलने की कोशिश की जाएगी. हालांकि, इसके लिए ज़रूरी है कि वह ऐप्लिकेशन आपके डिवाइस पर इंस्टॉल हो. ऐप्लिकेशन को Console में रजिस्टर करना ज़रूरी है. अगर कोई बंडल आईडी नहीं दिया गया है, तो इस फ़ील्ड की वैल्यू, ऐप्लिकेशन के मुख्य बंडल के बंडल आईडी पर सेट की जाती है.
androidPackageName स्ट्रिंग Android पैकेज का नाम सेट करता है. इससे, लिंक को किसी Android ऐप्लिकेशन में खोलने की कोशिश की जाएगी. हालांकि, ऐसा तब ही होगा, जब वह ऐप्लिकेशन आपके डिवाइस में इंस्टॉल हो.
androidInstallApp bool इससे यह तय होता है कि अगर डिवाइस पर Android ऐप्लिकेशन काम करता है और वह पहले से इंस्टॉल नहीं है, तो उसे इंस्टॉल करना है या नहीं. अगर इस फ़ील्ड को बिना packageName के दिया जाता है, तो गड़बड़ी का एक मैसेज दिखता है. इसमें बताया जाता है कि इस फ़ील्ड के साथ packageName दिया जाना चाहिए.
androidMinimumVersion स्ट्रिंग ऐप्लिकेशन का वह वर्शन जो इस फ़्लो में काम करता है. अगर minimumVersion की वैल्यू दी गई है और ऐप्लिकेशन का पुराना वर्शन इंस्टॉल है, तो उपयोगकर्ता को ऐप्लिकेशन को अपग्रेड करने के लिए Play Store पर ले जाया जाता है. इसके लिए, Android ऐप्लिकेशन को Console में रजिस्टर करना ज़रूरी है.
handleCodeInApp bool ईमेल ऐक्शन लिंक को मोबाइल ऐप्लिकेशन या वेब लिंक में से पहले किसमें खोला जाएगा. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होती है. 'सही है' पर सेट होने पर, ऐक्शन कोड लिंक को यूनिवर्सल लिंक या Android ऐप्लिकेशन लिंक के तौर पर भेजा जाएगा. साथ ही, अगर ऐप्लिकेशन इंस्टॉल है, तो वह लिंक को खोल देगा. गलत होने पर, कोड सबसे पहले वेब विजेट पर भेजा जाएगा और फिर 'जारी रखें' पर क्लिक करने पर, ऐप्लिकेशन इंस्टॉल होने पर उस पर रीडायरेक्ट कर दिया जाएगा.
dynamicLinkDomain स्ट्रिंग (अब काम नहीं करता, `linkDomain` का इस्तेमाल करें) मौजूदा लिंक के लिए इस्तेमाल किए जाने वाले डाइनैमिक लिंक डोमेन (या सबडोमेन) को सेट करता है. ऐसा तब किया जाता है, जब Firebase डाइनैमिक लिंक का इस्तेमाल करके लिंक खोला जाना हो. हर प्रोजेक्ट के लिए, एक से ज़्यादा डाइनैमिक लिंक डोमेन कॉन्फ़िगर किए जा सकते हैं. इसलिए, इस फ़ील्ड की मदद से, किसी एक को साफ़ तौर पर चुना जा सकता है. अगर कोई डोमेन नहीं दिया जाता है, तो डिफ़ॉल्ट रूप से पहले डोमेन का इस्तेमाल किया जाता है. linkDomain स्ट्रिंग Firebase Hosting का कस्टम डोमेन, जिसका इस्तेमाल तब किया जा सकता है, जब लिंक को किसी खास मोबाइल ऐप्लिकेशन से खोला जाना हो. यह डोमेन, Firebase Hosting में कॉन्फ़िगर होना चाहिए और प्रोजेक्ट के पास इसका मालिकाना हक होना चाहिए. यह डिफ़ॉल्ट होस्टिंग डोमेन (`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 Auth, मोबाइल ऐप्लिकेशन में खोले जाने वाले लिंक को भेजते समय, Firebase डाइनैमिक लिंक का इस्तेमाल करता है. इस सुविधा का इस्तेमाल करने के लिए, Firebase कंसोल में डाइनैमिक लिंक को कॉन्फ़िगर करना होगा.

  1. Firebase डाइनैमिक लिंक की सुविधा चालू करने के लिए:

    1. Firebase कंसोल में, डाइनैमिक लिंक सेक्शन खोलें.

    2. अगर आपने अब तक डाइनैमिक लिंक की शर्तें स्वीकार नहीं की हैं और डाइनैमिक लिंक वाला डोमेन नहीं बनाया है, तो अब ऐसा करें.

    3. अगर आपने पहले से ही डाइनैमिक लिंक डोमेन बनाया हुआ है, तो उसका ध्यान रखें. डाइनैमिक लिंक वाला डोमेन, आम तौर पर ऐसा दिखता है:

      example.page.link

    4. आने वाले लिंक को इंटरसेप्ट करने के लिए, अपने Apple या Android ऐप्लिकेशन को कॉन्फ़िगर करते समय, आपको इस वैल्यू की ज़रूरत होगी.

  2. Android ऐप्लिकेशन कॉन्फ़िगर करना:

    1. अगर आपको अपने Android ऐप्लिकेशन से इन लिंक को मैनेज करना है, तो Firebase Console के प्रोजेक्ट सेटिंग में Android पैकेज का नाम डालना होगा. इसके अलावा, ऐप्लिकेशन सर्टिफ़िकेट का SHA-1 और SHA-256 भी देना होगा.
    2. आपको अपनी AndroidManifest.xml फ़ाइल में, डीप लिंक के लिए इंटेंट फ़िल्टर को भी कॉन्फ़िगर करना होगा.
    3. इस बारे में ज़्यादा जानने के लिए, Android डाइनैमिक लिंक के निर्देश पाना लेख पढ़ें.
  3. Apple के ऐप्लिकेशन कॉन्फ़िगर करना:

    1. अगर आपको अपने ऐप्लिकेशन से इन लिंक को मैनेज करना है, तो Firebase Console के प्रोजेक्ट सेटिंग में बंडल आईडी की जानकारी देनी होगी. इसके अलावा, ऐप्लिकेशन स्टोर आईडी और Apple डेवलपर टीम आईडी की जानकारी भी देनी होगी.
    2. आपको अपने ऐप्लिकेशन की क्षमताओं में, एफ़डीएल यूनिवर्सल लिंक डोमेन को असोसिएटेड डोमेन के तौर पर भी कॉन्फ़िगर करना होगा.
    3. अगर आपको अपने ऐप्लिकेशन को iOS के 8 और उससे पहले के वर्शन पर उपलब्ध कराना है, तो आपको आने वाले यूआरएल के लिए, अपने बंडल आईडी को कस्टम स्कीम के तौर पर सेट करना होगा.
    4. इस बारे में ज़्यादा जानने के लिए, Apple के प्लैटफ़ॉर्म के लिए डाइनैमिक लिंक से जुड़े निर्देश पाना लेख पढ़ें.

वेब ऐप्लिकेशन में ईमेल से जुड़ी कार्रवाइयों को मैनेज करना

आपके पास यह तय करने का विकल्प होता है कि आपको ऐक्शन कोड के लिंक को पहले किसी वेब ऐप्लिकेशन से मैनेज करना है या नहीं. अगर आपको ऐसा करना है, तो लिंक मैनेज होने के बाद, उपयोगकर्ता को किसी दूसरे वेब पेज या मोबाइल ऐप्लिकेशन पर रीडायरेक्ट किया जा सकता है. हालांकि, इसके लिए ज़रूरी है कि मोबाइल ऐप्लिकेशन उपलब्ध हो. ऐसा करने के लिए, ActionCodeSettings ऑब्जेक्ट में handleCodeInApp को false पर सेट करें. बंडल आईडी या Android पैकेज का नाम देना ज़रूरी नहीं है. हालांकि, इन्हें देने पर उपयोगकर्ता को ईमेल ऐक्शन कोड पूरा होने पर, बताए गए ऐप्लिकेशन पर रीडायरेक्ट किया जा सकेगा.

यहां इस्तेमाल किया गया वेब यूआरएल, ईमेल ऐक्शन टेंप्लेट सेक्शन में कॉन्फ़िगर किया गया यूआरएल होता है. सभी प्रोजेक्ट के लिए, डिफ़ॉल्ट रूप से एक डोमेन उपलब्ध होता है. ईमेल ऐक्शन हैंडलर को पसंद के मुताबिक बनाने के तरीके के बारे में ज़्यादा जानने के लिए, ईमेल हैंडलर को पसंद के मुताबिक बनाना लेख पढ़ें.

इस मामले में, continueURL क्वेरी पैरामीटर में मौजूद लिंक, एक एफ़डीएल लिंक होगा. इसका पेलोड, ActionCodeSettings ऑब्जेक्ट में बताया गया URL होगा. आपके पास अपने ऐप्लिकेशन से आने वाले लिंक को बिना किसी अतिरिक्त डिपेंडेंसी के इंटरसेप्ट और मैनेज करने का विकल्प है. हालांकि, हमारा सुझाव है कि आप डीप लिंक को पार्स करने के लिए, FDL क्लाइंट लाइब्रेरी का इस्तेमाल करें.

ईमेल की पुष्टि जैसी ईमेल कार्रवाइयों को मैनेज करते समय, oobCode क्वेरी पैरामीटर के ऐक्शन कोड को डीप लिंक से पार्स करना ज़रूरी है.इसके बाद, बदलाव लागू होने के लिए, applyActionCode के ज़रिए इसे लागू करना होगा. इसका मतलब है कि ईमेल की पुष्टि की जानी चाहिए.

मोबाइल ऐप्लिकेशन में ईमेल से जुड़ी कार्रवाइयों को मैनेज करना

आपके पास यह तय करने का विकल्प होता है कि आपको अपने मोबाइल ऐप्लिकेशन में ऐक्शन कोड लिंक को पहले मैनेज करना है या नहीं. हालांकि, इसके लिए ज़रूरी है कि ऐप्लिकेशन इंस्टॉल हो. Android ऐप्लिकेशन के लिए, androidInstallApp के ज़रिए यह भी बताया जा सकता है कि अगर डिवाइस पर ऐप्लिकेशन काम करता है और वह पहले से इंस्टॉल नहीं है, तो उसे इंस्टॉल किया जाए. अगर लिंक पर किसी ऐसे डिवाइस से क्लिक किया जाता है जिस पर मोबाइल ऐप्लिकेशन काम नहीं करता, तो वह लिंक वेब पेज पर खुलता है. ऐसा करने के लिए, ActionCodeSettings ऑब्जेक्ट में handleCodeInApp को true पर सेट करें. मोबाइल ऐप्लिकेशन के Android पैकेज का नाम या बंडल आईडी भी बताना होगा.जब कोई मोबाइल ऐप्लिकेशन उपलब्ध न हो, तो यहां इस्तेमाल किया जाने वाला फ़ॉलबैक वेब यूआरएल, ईमेल ऐक्शन टेंप्लेट सेक्शन में कॉन्फ़िगर किया गया यूआरएल होता है. सभी प्रोजेक्ट के लिए, डिफ़ॉल्ट तौर पर एक डोमेन उपलब्ध होता है. ईमेल ऐक्शन हैंडलर को पसंद के मुताबिक बनाने के तरीके के बारे में ज़्यादा जानने के लिए, ईमेल हैंडलर को पसंद के मुताबिक बनाना लेख पढ़ें.

इस मामले में, उपयोगकर्ता को भेजा गया मोबाइल ऐप्लिकेशन लिंक, एक एफ़डीएल लिंक होगा. इसका पेलोड, ऐक्शन कोड यूआरएल होगा, जिसे Console में क्वेरी पैरामीटर oobCode, mode, apiKey, और continueUrl के साथ कॉन्फ़िगर किया गया है. बाद वाला वैल्यू, ActionCodeSettings ऑब्जेक्ट में बताए गए मूल URL होगा. आपके पास अपने ऐप्लिकेशन से आने वाले लिंक को बिना किसी अतिरिक्त डिपेंडेंसी के इंटरसेप्ट और मैनेज करने का विकल्प है. हालांकि, हमारा सुझाव है कि डीप लिंक को पार्स करने के लिए, FDL क्लाइंट लाइब्रेरी का इस्तेमाल करें. ऐक्शन कोड को सीधे मोबाइल ऐप्लिकेशन से लागू किया जा सकता है. ठीक उसी तरह जैसे ईमेल हैंडलर को पसंद के मुताबिक बनाने वाले सेक्शन में बताए गए वेब फ़्लो से किया जाता है.

ईमेल की पुष्टि जैसी ईमेल कार्रवाइयों को मैनेज करते समय, oobCode क्वेरी पैरामीटर के ऐक्शन कोड को डीप लिंक से पार्स करना ज़रूरी है.इसके बाद, बदलाव लागू होने के लिए, applyActionCode के ज़रिए इसे लागू करना होगा. इसका मतलब है कि ईमेल की पुष्टि की जानी चाहिए.