पासवर्ड फिर सेट करने या किसी उपयोगकर्ता के ईमेल की पुष्टि करने के लिए ईमेल कार्रवाई भेजते समय, आप यूआरएल पर जारी रखें के ज़रिए स्टेट पास कर सकते हैं. इससे, कार्रवाई पूरी होने के बाद उपयोगकर्ता को ऐप्लिकेशन पर वापस जाने की सुविधा मिलती है. इसके अलावा, यह भी तय किया जा सकता है कि वेब पेज के बजाय, मोबाइल ऐप्लिकेशन इंस्टॉल होने पर, ईमेल ऐक्शन लिंक को सीधे तौर पर हैंडल किया जाए या नहीं.
यह सुविधा, इन सामान्य स्थितियों में बहुत काम आ सकती है:
कोई ऐसा उपयोगकर्ता जो फ़िलहाल लॉग इन नहीं है, ऐसे कॉन्टेंट को ऐक्सेस करने की कोशिश कर सकता है जिसके लिए लॉग इन करना ज़रूरी है. हालांकि, हो सकता है कि उपयोगकर्ता अपना पासवर्ड भूल गया हो. इसलिए, वह पासवर्ड रीसेट करने का फ़्लो ट्रिगर कर सकता है. फ़्लो के आखिर में, उपयोगकर्ता को उम्मीद होती है कि वह ऐप्लिकेशन के उस सेक्शन पर वापस जाएगा जिसे वह ऐक्सेस करने की कोशिश कर रहा था.
कोई ऐप्लिकेशन, पुष्टि किए गए खातों को ही ऐक्सेस करने की सुविधा दे सकता है. उदाहरण के लिए, न्यूज़लेटर के लिए सदस्यता लेने से पहले, उपयोगकर्ता को अपने ईमेल की पुष्टि करनी पड़ सकती है. उपयोगकर्ता, ईमेल पते की पुष्टि करने के फ़्लो से गुज़रेगा और उसे उम्मीद होगी कि सदस्यता लेने की प्रोसेस पूरी करने के लिए, वह ऐप्लिकेशन पर वापस जाएगा.
अन्य मामलों में, हो सकता है कि उपयोगकर्ता ने अपने मोबाइल डिवाइस से फ़्लो शुरू किया हो और उसे उम्मीद हो कि पुष्टि करने के बाद, वह ब्राउज़र के बजाय अपने मोबाइल ऐप्लिकेशन पर वापस जाएगा.
Firebase Auth, यूआरएल पर जारी रखें के ज़रिए स्टेट पास करने की सुविधा देता है. यह एक काम की सुविधा है, जिससे उपयोगकर्ता अनुभव को बेहतर बनाया जा सकता है.
ईमेल ऐक्शन में यूआरएल पर जारी रखें का स्टेट पास करना
continue URL को सुरक्षित तरीके से पास करने के लिए, आपको यूआरएल के डोमेन को अनुमति वाले डोमेन के तौर पर जोड़ना होगा:
Firebase console में, सुरक्षा > पुष्टि > सेटिंग टैब पर जाएं.
अनुमति वाले डोमेन सेक्शन में, डोमेन जोड़ें पर क्लिक करें. इसके बाद, यूआरएल जोड़ें.
पासवर्ड फिर सेट करने के लिए ईमेल या पुष्टि के लिए भेजा गया ईमेल भेजते समय, firebase.auth.ActionCodeSettings इंस्टेंस देना ज़रूरी है. इस इंटरफ़ेस में ये पैरामीटर इस्तेमाल किए जाते हैं:
| पैरामीटर | टाइप | ब्यौरा |
|---|---|---|
url |
स्ट्रिंग | लिंक (स्टेट/यूआरएल पर जारी रखें) सेट करता है, जिसके अलग-अलग कॉन्टेक्स्ट में अलग-अलग मतलब होते हैं:
|
iOS |
({bundleId: string}|undefined) | iOS बंडल आईडी सेट करता है, ताकि Firebase Authentication यह तय कर सके कि उसे सिर्फ़ वेब लिंक या मोबाइल लिंक बनाना चाहिए. यह लिंक, Apple डिवाइस पर खोला जाता है |
android |
({packageName: string, installApp:boolean|undefined, minimumVersion: string|undefined}|undefined) | Android पैकेज का नाम सेट करता है, ताकि Firebase Authentication यह तय कर सके कि उसे सिर्फ़ वेब लिंक या मोबाइल लिंक बनाना चाहिए. यह लिंक, Android डिवाइस पर खोला जाता है |
handleCodeInApp |
(boolean|undefined) | ईमेल कार्रवाई करने का लिंक, पहले किसी मोबाइल ऐप्लिकेशन में खुलेगा या वेब लिंक में. डिफ़ॉल्ट रूप से, यह गलत पर सेट होता है. इसे 'सही है' पर सेट करने पर, ऐक्शन कोड लिंक को यूनिवर्सल लिंक या Android ऐप्लिकेशन लिंक के तौर पर भेजा जाएगा. अगर ऐप्लिकेशन इंस्टॉल है, तो यह लिंक ऐप्लिकेशन में खुलेगा . अगर इसे 'गलत' पर सेट किया जाता है, तो कोड पहले वेब विजेट पर भेजा जाएगा. इसके बाद, अगर ऐप्लिकेशन इंस्टॉल है, तो यह ऐप्लिकेशन पर रीडायरेक्ट होगा. |
linkDomain |
(string|undefined) | जब किसी प्रोजेक्ट के लिए, कस्टम Hosting लिंक डोमेन तय किए जाते हैं, तो यह तय करें कि किसी खास मोबाइल ऐप्लिकेशन से लिंक खोलने पर, कौनसा डोमेन इस्तेमाल करना है. ऐसा न करने पर, डिफ़ॉल्ट डोमेन अपने-आप चुना जाता है. उदाहरण के लिए, PROJECT_ID.firebaseapp.com |
dynamicLinkDomain |
(string|undefined) | अब इस्तेमाल में नहीं है. यह पैरामीटर तय न करें. |
यहां दिए गए उदाहरण में, ईमेल की पुष्टि करने के लिए एक लिंक भेजने का तरीका बताया गया है. यह लिंक,
कस्टम Hosting डोमेन
custom-domain.com का इस्तेमाल करके, पहले किसी मोबाइल ऐप्लिकेशन में खुलेगा. डीप लिंक में, यूआरएल पर जारी रखें पेलोड https://www.example.com/?email=user@example.com शामिल होगा.
const actionCodeSettings = {
url: 'https://www.example.com/?email=' + firebase.auth().currentUser.email,
iOS: {
bundleId: 'com.example.ios'
},
android: {
packageName: 'com.example.android',
},
handleCodeInApp: true,
// Specify a custom Hosting link domain to use. The domain must be
// configured in Firebase Hosting and owned by the project.
linkDomain: "custom-domain.com"
};
firebase.auth().currentUser.sendEmailVerification(actionCodeSettings)
.then(function() {
// Verification email sent.
})
.catch(function(error) {
// Error occurred. Inspect error.code.
});
Firebase Hosting लिंक कॉन्फ़िगर करना
Firebase Authentication मोबाइल ऐप्लिकेशन में खोले जाने वाले Firebase Hosting को भेजते समय, का इस्तेमाल करता है. इस सुविधा का इस्तेमाल करने के लिए, होस्टिंग लिंक को Firebase कंसोल में कॉन्फ़िगर करना होगा.
Android ऐप्लिकेशन कॉन्फ़िगर करना:
- अगर आपको अपने Android ऐप्लिकेशन से इन लिंक को हैंडल करना है, तो आपके ऐप्लिकेशन का पैकेज नाम Firebase console प्रोजेक्ट सेटिंग में तय करना होगा. इसके अलावा, ऐप्लिकेशन सर्टिफ़िकेट का SHA-1 और SHA-256 देना होगा.
- आपको अपनी
AndroidManifest.xmlफ़ाइल में, डीप लिंक के लिए इंटेंट फ़िल्टर भी कॉन्फ़िगर करना होगा. - इस बारे में ज़्यादा जानने के लिए, Android होस्टिंग लिंक पाने के निर्देश देखें.
iOS ऐप्लिकेशन कॉन्फ़िगर करना:
- अगर आपको अपने iOS ऐप्लिकेशन से इन लिंक को हैंडल करना है, तो आपको अपने ऐप्लिकेशन की क्षमताओं में, Hosting लिंक डोमेन को एसोसिएटेड डोमेन के तौर पर कॉन्फ़िगर करना होगा.
- इस बारे में ज़्यादा जानने के लिए, iOS होस्टिंग लिंक पाने के निर्देश देखें.
वेब ऐप्लिकेशन में ईमेल ऐक्शन हैंडल करना
यह तय किया जा सकता है कि आपको ऐक्शन कोड लिंक को पहले किसी वेब ऐप्लिकेशन से हैंडल करना है या नहीं. अगर मोबाइल ऐप्लिकेशन उपलब्ध है, तो सफलतापूर्वक पूरा होने के बाद, किसी दूसरे वेब पेज या मोबाइल ऐप्लिकेशन पर रीडायरेक्ट किया जा सकता है.
ऐसा करने के लिए, firebase.auth.ActionCodeSettings ऑब्जेक्ट में handleCodeInApp को false पर सेट करें. iOS बंडल आईडी या Android पैकेज का नाम देना ज़रूरी नहीं है. हालांकि, इन्हें देने से, ईमेल ऐक्शन कोड पूरा होने पर, उपयोगकर्ता को तय किए गए ऐप्लिकेशन पर वापस रीडायरेक्ट किया जा सकेगा.
यहां इस्तेमाल किया गया वेब यूआरएल, ईमेल ऐक्शन टेंप्लेट सेक्शन में कॉन्फ़िगर किया गया यूआरएल है. सभी प्रोजेक्ट के लिए, एक डिफ़ॉल्ट यूआरएल उपलब्ध कराया जाता है. ईमेल ऐक्शन हैंडलर को पसंद के मुताबिक बनाने के तरीके के बारे में ज़्यादा जानने के लिए, ईमेल हैंडलर को पसंद के मुताबिक बनाना देखें.
इस मामले में, continueUrl क्वेरी पैरामीटर में मौजूद लिंक, एक होस्टिंग लिंक होगा. इसका पेलोड, ActionCodeSettings ऑब्जेक्ट में तय किया गया URL होगा.
ईमेल की पुष्टि करने जैसे ईमेल ऐक्शन को हैंडल करते समय, डीप लिंक से oobCode क्वेरी पैरामीटर से ऐक्शन कोड को पार्स करना होगा. इसके बाद, बदलाव लागू करने के लिए, यानी ईमेल की पुष्टि करने के लिए, applyActionCode के ज़रिए इसे लागू करना होगा.
मोबाइल ऐप्लिकेशन में ईमेल ऐक्शन हैंडल करना
यह तय किया जा सकता है कि आपको ऐक्शन कोड लिंक को पहले अपने मोबाइल ऐप्लिकेशन में हैंडल करना है या नहीं. हालांकि, इसके लिए ऐप्लिकेशन इंस्टॉल होना चाहिए. अगर लिंक को किसी ऐसे डिवाइस से क्लिक किया जाता है जिस पर मोबाइल ऐप्लिकेशन काम नहीं करता है, तो यह वेब पेज से खुलता है. ऐसा करने के लिए, firebase.auth.ActionCodeSettings ऑब्जेक्ट में handleCodeInApp को true पर सेट करें. मोबाइल ऐप्लिकेशन का Android पैकेज नाम या iOS बंडल आईडी भी तय करना होगा.
यहां इस्तेमाल किया गया फ़ॉलबैक वेब यूआरएल, ईमेल ऐक्शन टेंप्लेट सेक्शन में कॉन्फ़िगर किया गया यूआरएल है. इसका इस्तेमाल तब किया जाता है, जब कोई मोबाइल ऐप्लिकेशन उपलब्ध नहीं होता है. सभी प्रोजेक्ट के लिए, एक डिफ़ॉल्ट यूआरएल उपलब्ध कराया जाता है. ईमेल ऐक्शन हैंडलर को पसंद के मुताबिक बनाने के तरीके के बारे में ज़्यादा जानने के लिए, ईमेल हैंडलर को पसंद के मुताबिक बनाना देखें.
इस मामले में, उपयोगकर्ता को भेजा गया मोबाइल ऐप्लिकेशन लिंक, एक Hosting लिंक
होगा. इसका पेलोड, Console में कॉन्फ़िगर किया गया ऐक्शन कोड यूआरएल होगा. इसमें oobCode, mode, apiKey, और continueUrl क्वेरी
पैरामीटर शामिल होंगे. बाद वाला, ActionCodeSettings ऑब्जेक्ट में तय किया गया ओरिजनल URL होगा. ईमेल हैंडलर को पसंद के मुताबिक बनाना सेक्शन में बताए गए वेब फ़्लो की तरह ही, ऐक्शन कोड को सीधे तौर पर किसी मोबाइल ऐप्लिकेशन से लागू किया जा सकता है.
ईमेल की पुष्टि करने जैसे ईमेल ऐक्शन को हैंडल करते समय, डीप लिंक से oobCode क्वेरी पैरामीटर से ऐक्शन कोड को पार्स करना होगा. इसके बाद, बदलाव लागू करने के लिए, यानी ईमेल की पुष्टि करने के लिए, applyActionCode के ज़रिए इसे लागू करना होगा.