ईमेल क्रियाओं में राज्य पास करना

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

यह निम्नलिखित सामान्य परिदृश्यों में अत्यंत उपयोगी हो सकता है:

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

  • एक एप्लिकेशन केवल सत्यापित खातों तक पहुंच प्रदान कर सकता है। उदाहरण के लिए, एक न्यूजलेटर को सदस्यता लेने से पहले उपयोगकर्ता को अपने ईमेल को सत्यापित करने की आवश्यकता हो सकती है। उपयोगकर्ता ईमेल सत्यापन प्रवाह से गुजरेगा और अपनी सदस्यता पूरी करने के लिए ऐप पर वापस जाने की अपेक्षा करेगा।

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

एक जारी URL के माध्यम से राज्य पास करने की क्षमता होना एक शक्तिशाली विशेषता है जो फायरबेस ऑथ प्रदान करता है और जो उपयोगकर्ता अनुभव को महत्वपूर्ण रूप से बढ़ा सकता है।

ईमेल क्रियाओं में राज्य/जारी URL पास करना

किसी जारी URL को सुरक्षित रूप से पास करने के लिए, URL के लिए डोमेन को Firebase कंसोल में एक अधिकृत डोमेन के रूप में जोड़ना होगा। यह इस डोमेन को साइन-इन विधि टैब के तहत अधिकृत डोमेन की सूची में जोड़कर प्रमाणीकरण अनुभाग में किया जाता है यदि यह पहले से मौजूद नहीं है।

पासवर्ड रीसेट ईमेल या सत्यापन ईमेल भेजते समय firebase.auth.ActionCodeSettings उदाहरण प्रदान करने की आवश्यकता होती है। यह इंटरफ़ेस निम्नलिखित पैरामीटर लेता है:

पैरामीटर टाइप विवरण
url डोरी

लिंक सेट करता है (राज्य/जारी URL) जिसके अलग-अलग संदर्भों में अलग-अलग अर्थ हैं:

  • जब लिंक को वेब एक्शन विजेट में हैंडल किया जाता है, तो यह continueUrl क्वेरी पैरामीटर में डीप लिंक होता है।
  • जब लिंक को सीधे ऐप में हैंडल किया जाता है, तो यह डायनेमिक लिंक के डीप लिंक में continueUrl क्वेरी पैरामीटर होता है।
iOS ({बंडलआईड: स्ट्रिंग}|अपरिभाषित) आईओएस बंडल आईडी सेट करता है। यह स्थापित होने पर आईओएस ऐप में लिंक खोलने का प्रयास करेगा। आईओएस ऐप को कंसोल में पंजीकृत करने की जरूरत है।
android ({पैकेजनाम: स्ट्रिंग, इंस्टाल ऐप: बूलियन | अपरिभाषित, न्यूनतम संस्करण: स्ट्रिंग | अपरिभाषित} | अपरिभाषित) Android पैकेज का नाम सेट करता है। यह स्थापित होने पर एंड्रॉइड ऐप में लिंक खोलने का प्रयास करेगा। यदि installApp पास हो जाता है, तो यह निर्दिष्ट करता है कि Android ऐप इंस्टॉल करना है या नहीं यदि डिवाइस इसका समर्थन करता है और ऐप पहले से इंस्टॉल नहीं है। यदि यह फ़ील्ड बिना packageName के प्रदान की जाती है, तो यह बताते हुए एक त्रुटि दिखाई देती है कि इस फ़ील्ड के संयोजन में packageName प्रदान किया जाना चाहिए। यदि minimumVersion संस्करण निर्दिष्ट किया गया है, और ऐप का पुराना संस्करण स्थापित है, तो ऐप को अपग्रेड करने के लिए उपयोगकर्ता को प्ले स्टोर पर ले जाया जाता है। Android ऐप को कंसोल में पंजीकृत करने की आवश्यकता है।
handleCodeInApp (बूलियन | अपरिभाषित) ईमेल एक्शन लिंक को पहले मोबाइल ऐप या वेब लिंक में खोला जाएगा या नहीं। डिफॉल्ट गलत है। सही पर सेट होने पर, एक्शन कोड लिंक को यूनिवर्सल लिंक या एंड्रॉइड ऐप लिंक के रूप में भेजा जाएगा और इंस्टॉल होने पर ऐप द्वारा खोला जाएगा। झूठे मामले में, कोड पहले वेब विजेट को भेजा जाएगा और फिर जारी रहने पर ऐप इंस्टॉल होने पर रीडायरेक्ट करेगा।
dynamicLinkDomain (स्ट्रिंग | अपरिभाषित) डायनामिक लिंक डोमेन (या सबडोमेन) को वर्तमान लिंक के लिए उपयोग करने के लिए सेट करता है यदि इसे फायरबेस डायनेमिक लिंक का उपयोग करके खोला जाना है। चूंकि प्रति प्रोजेक्ट एकाधिक डायनेमिक लिंक डोमेन कॉन्फ़िगर किए जा सकते हैं, यह फ़ील्ड स्पष्ट रूप से किसी एक को चुनने की क्षमता प्रदान करता है। यदि कोई प्रदान नहीं किया जाता है, तो पहले डोमेन का उपयोग डिफ़ॉल्ट रूप से किया जाता है।

निम्न उदाहरण दिखाता है कि एक ईमेल सत्यापन लिंक कैसे भेजा जाए जो कस्टम डायनेमिक लिंक डोमेन example.page.link (iOS ऐप com.example.ios या Android ऐप com.example.android जहां ऐप इंस्टॉल हो जाएगा अगर पहले से इंस्टॉल नहीं है और न्यूनतम संस्करण 12 है)। डीप लिंक में जारी URL पेलोड https://www.example.com/?email=user@example.com होगा।

var actionCodeSettings = {
  url: 'https://www.example.com/?email=' + firebase.auth().currentUser.email,
  iOS: {
    bundleId: 'com.example.ios'
  },
  android: {
    packageName: 'com.example.android',
    installApp: true,
    minimumVersion: '12'
  },
  handleCodeInApp: true,
  // When multiple custom dynamic link domains are defined, specify which
  // one to use.
  dynamicLinkDomain: "example.page.link"
};
firebase.auth().currentUser.sendEmailVerification(actionCodeSettings)
  .then(function() {
    // Verification email sent.
  })
  .catch(function(error) {
    // Error occurred. Inspect error.code.
  });

फायरबेस ऑथ मोबाइल एप्लिकेशन में खोले जाने वाले लिंक को भेजते समय फायरबेस डायनेमिक लिंक का उपयोग करता है। इस सुविधा का उपयोग करने के लिए, डायनेमिक लिंक को फायरबेस कंसोल में कॉन्फ़िगर करने की आवश्यकता है।

  1. फायरबेस डायनेमिक लिंक सक्षम करें:

    1. Firebase कंसोल में, डायनामिक लिंक अनुभाग खोलें।
    2. यदि आपने अभी तक डायनामिक लिंक शर्तों को स्वीकार नहीं किया है और डायनामिक लिंक्स डोमेन बनाया है, तो अभी ऐसा करें।

      यदि आपने पहले ही डायनेमिक लिंक्स डोमेन बना लिया है, तो इस पर ध्यान दें। एक डायनेमिक लिंक डोमेन आमतौर पर निम्न उदाहरण जैसा दिखता है:

      example.page.link

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

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

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

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

वेब एप्लिकेशन में ईमेल क्रियाओं को संभालना

आप यह निर्दिष्ट कर सकते हैं कि क्या आप पहले किसी वेब एप्लिकेशन से एक्शन कोड लिंक को संभालना चाहते हैं और फिर सफल समापन के बाद किसी अन्य वेब पेज या मोबाइल एप्लिकेशन पर रीडायरेक्ट करना चाहते हैं, बशर्ते मोबाइल एप्लिकेशन उपलब्ध हो। यह firebase.auth.ActionCodeSettings ऑब्जेक्ट में handleCodeInApp को false पर सेट करके किया जाता है। जबकि आईओएस बंडल आईडी या एंड्रॉइड पैकेज नाम की आवश्यकता नहीं है, उन्हें प्रदान करने से उपयोगकर्ता को ईमेल एक्शन कोड पूरा होने पर निर्दिष्ट ऐप पर वापस रीडायरेक्ट करने की अनुमति मिल जाएगी।

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

इस मामले में, continueUrl URL क्वेरी पैरामीटर के भीतर लिंक एक FDL लिंक होगा जिसका पेलोड ActionCodeSettings ऑब्जेक्ट में निर्दिष्ट URL है। जबकि आप बिना किसी अतिरिक्त निर्भरता के अपने ऐप से आने वाले लिंक को इंटरसेप्ट और हैंडल कर सकते हैं, हम आपके लिए डीप लिंक को पार्स करने के लिए FDL क्लाइंट लाइब्रेरी का उपयोग करने की सलाह देते हैं।

ईमेल सत्यापन जैसे ईमेल क्रियाओं को संभालते समय, oobCode क्वेरी पैरामीटर से क्रिया कोड को डीप लिंक से पार्स करने की आवश्यकता होती है और फिर परिवर्तन के प्रभावी होने के लिए applyActionCode के माध्यम से लागू किया जाता है, अर्थात ईमेल को सत्यापित किया जाना है।

मोबाइल एप्लिकेशन में ईमेल क्रियाओं को संभालना

आप यह निर्दिष्ट कर सकते हैं कि क्या आप पहले अपने मोबाइल एप्लिकेशन में एक्शन कोड लिंक को हैंडल करना चाहते हैं, बशर्ते कि यह इंस्टॉल हो। एंड्रॉइड एप्लिकेशन के साथ, आपके पास android.installApp के माध्यम से यह निर्दिष्ट करने की क्षमता भी है कि ऐप को इंस्टॉल किया जाना है यदि डिवाइस इसका समर्थन करता है और यह पहले से इंस्टॉल नहीं है। यदि लिंक को किसी ऐसे उपकरण से क्लिक किया जाता है जो मोबाइल एप्लिकेशन का समर्थन नहीं करता है, तो इसे वेब पेज से खोला जाता है। यह firebase.auth.ActionCodeSettings ऑब्जेक्ट में handleCodeInApp को true पर सेट करके किया जाता है। मोबाइल एप्लिकेशन का Android पैकेज नाम या iOS बंडल आईडी भी निर्दिष्ट करने की आवश्यकता होगी।

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

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

ईमेल सत्यापन जैसे ईमेल क्रियाओं को संभालते समय, oobCode क्वेरी पैरामीटर से क्रिया कोड को डीप लिंक से पार्स करने की आवश्यकता होती है और फिर परिवर्तन के प्रभावी होने के लिए applyActionCode के माध्यम से लागू किया जाता है, अर्थात ईमेल को सत्यापित किया जाना है।