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

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

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

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

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

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

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

ईमेल कार्रवाइयों में, जारी रखने के लिए यूआरएल की स्थिति पास करना

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

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

तरीका ब्यौरा
setUrl(String url)

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

  • जब लिंक को वेब ऐक्शन विजेट में मैनेज किया जाता है, तो यह continueUrl क्वेरी पैरामीटर में डीप लिंक होता है.
  • जब लिंक को सीधे ऐप्लिकेशन में मैनेज किया जाता है, तो यह continueUrl लिंक के डीप लिंक में क्वेरी पैरामीटर होता है Hosting.
setIOSBundleId(String iOSBundleId) iOS बंडल आईडी सेट करता है, ताकि Firebase Authentication यह तय कर सके कि उसे सिर्फ़ वेब या मोबाइल के लिए लिंक बनाना चाहिए या ऐसा लिंक जो Apple डिवाइस पर खुलता हो
setAndroidPackageName(String androidPackageName, boolean installIfNotAvailable, String minimumVersion) Android पैकेज का नाम सेट करता है, ताकि Firebase Authentication यह तय कर सके कि उसे सिर्फ़ वेब या मोबाइल के लिए लिंक बनाना है या Android डिवाइस पर खोला जाने वाला लिंक
setHandleCodeInApp(boolean status) ईमेल ऐक्शन लिंक को मोबाइल ऐप्लिकेशन या वेब लिंक में से पहले किसमें खोला जाएगा. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होती है. 'सही है' पर सेट होने पर, ऐक्शन कोड लिंक को यूनिवर्सल लिंक या Android ऐप्लिकेशन लिंक के तौर पर भेजा जाएगा. साथ ही, अगर ऐप्लिकेशन इंस्टॉल है, तो वह लिंक को खोल देगा. गलत होने पर, कोड सबसे पहले वेब विजेट पर भेजा जाएगा और फिर 'जारी रखें' पर क्लिक करने पर, ऐप्लिकेशन इंस्टॉल होने पर उस पर रीडायरेक्ट कर दिया जाएगा.
setLinkDomain(String customDomain) जब किसी प्रोजेक्ट के लिए कस्टम Hosting लिंक डोमेन तय किए जाते हैं, तो यह तय करें कि किसी खास मोबाइल ऐप्लिकेशन से लिंक खोलने पर, किस डोमेन का इस्तेमाल किया जाए. ऐसा न करने पर, डिफ़ॉल्ट डोमेन अपने-आप चुना जाता है. उदाहरण के लिए, PROJECT_ID.firebaseapp.com.
setDynamicLinkDomain(String dynamicLinkDomain) समर्थन नहीं होना या रुकना. इस पैरामीटर की वैल्यू सबमिट न करें.

यहां दिए गए उदाहरण में, पुष्टि करने के लिए ऐसा ईमेल लिंक भेजने का तरीका बताया गया है जो पहले मोबाइल ऐप्लिकेशन में खुलेगा. डीप लिंक में, जारी रखने के लिए यूआरएल का पेलोड http://www.example.com/verify?uid=1234 शामिल होगा.

Kotlin

val auth = Firebase.auth
val user = auth.currentUser!!

val url = "http://www.example.com/verify?uid=" + user.uid
val actionCodeSettings = ActionCodeSettings.newBuilder()
    .setUrl(url)
    .setIOSBundleId("com.example.ios")
    // The default for this is populated with the current android package name.
    .setAndroidPackageName("com.example.android", false, null)
    .build()

user.sendEmailVerification(actionCodeSettings)
    .addOnCompleteListener { task ->
        if (task.isSuccessful) {
            Log.d(TAG, "Email sent.")
        }
    }

Java

FirebaseAuth auth = FirebaseAuth.getInstance();
FirebaseUser user = auth.getCurrentUser();

String url = "http://www.example.com/verify?uid=" + user.getUid();
ActionCodeSettings actionCodeSettings = ActionCodeSettings.newBuilder()
        .setUrl(url)
        .setIOSBundleId("com.example.ios")
        // The default for this is populated with the current android package name.
        .setAndroidPackageName("com.example.android", false, null)
        .build();

user.sendEmailVerification(actionCodeSettings)
        .addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                if (task.isSuccessful()) {
                    Log.d(TAG, "Email sent.");
                }
            }
        });

Firebase Authentication, मोबाइल ऐप्लिकेशन में खोलने के लिए लिंक भेजते समय Firebase Hosting का इस्तेमाल करता है. इस सुविधा का इस्तेमाल करने के लिए, Firebase console में होस्टिंग लिंक कॉन्फ़िगर करने होंगे.

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

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

    1. अगर आपको अपने iOS ऐप्लिकेशन से इन लिंक को मैनेज करना है, तो आपको अपने ऐप्लिकेशन की सुविधाओं में Hosting लिंक डोमेन को असोसिएटेड डोमेन के तौर पर कॉन्फ़िगर करना होगा.
    2. इस बारे में ज़्यादा जानने के लिए, iOS होस्टिंग लिंक के निर्देश पाना लेख पढ़ें.

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

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

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

इस मामले में, continueUrl क्वेरी पैरामीटर में मौजूद लिंक एक Hosting लिंक होगा. इसका पेलोड, ActionCodeSettings ऑब्जेक्ट में बताए गए URL होगा.

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

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

आपके पास यह तय करने का विकल्प होता है कि आपको ऐक्शन कोड लिंक को पहले अपने मोबाइल ऐप्लिकेशन में मैनेज करना है या नहीं. हालांकि, इसके लिए ज़रूरी है कि ऐप्लिकेशन इंस्टॉल हो. अगर लिंक पर किसी ऐसे डिवाइस से क्लिक किया जाता है जिस पर मोबाइल ऐप्लिकेशन काम नहीं करता, तो वह लिंक किसी वेब पेज पर खुलता है. ऐसा करने के लिए, ActionCodeSettings.Builder ऑब्जेक्ट में setHandleCodeInApp(true) को कॉल करें. मोबाइल ऐप्लिकेशन के Android पैकेज का नाम या iOS बंडल आईडी भी बताना होगा.

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

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

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