पासवर्ड रीसेट करने या उपयोगकर्ता के ईमेल की पुष्टि करने के लिए, ईमेल से जुड़ी कार्रवाइयां भेजते समय, जारी रखने के यूआरएल के ज़रिए स्थिति पास की जा सकती है. इससे उपयोगकर्ता को कार्रवाई पूरी होने के बाद, ऐप्लिकेशन पर वापस जाने की सुविधा मिलती है. इसके अलावा, यह भी तय किया जा सकता है कि जब मोबाइल ऐप्लिकेशन इंस्टॉल हो, तब ईमेल ऐक्शन लिंक को वेब पेज के बजाय सीधे तौर पर मोबाइल ऐप्लिकेशन से हैंडल किया जाए या नहीं.
यह सुविधा, इन सामान्य स्थितियों में बहुत मददगार हो सकती है:
ऐसा हो सकता है कि कोई ऐसा व्यक्ति कॉन्टेंट ऐक्सेस करने की कोशिश कर रहा हो जिसने अभी लॉग इन नहीं किया है. हालांकि, इस कॉन्टेंट को ऐक्सेस करने के लिए, लॉग इन करना ज़रूरी है. हालांकि, ऐसा हो सकता है कि उपयोगकर्ता अपना पासवर्ड भूल गया हो. इसलिए, वह पासवर्ड रीसेट करने का अनुरोध कर सकता है. फ़्लो के आखिर में, उपयोगकर्ता को ऐप्लिकेशन के उस सेक्शन पर वापस जाने की उम्मीद होती है जिसे वह ऐक्सेस करने की कोशिश कर रहा था.
कोई ऐप्लिकेशन, सिर्फ़ पुष्टि किए गए खातों का ऐक्सेस दे सकता है. उदाहरण के लिए, हो सकता है कि न्यूज़लेटर की सदस्यता लेने से पहले, उपयोगकर्ता को अपने ईमेल पते की पुष्टि करनी पड़े. उपयोगकर्ता को ईमेल से पुष्टि करने की प्रोसेस पूरी करनी होगी. इसके बाद, वह सदस्यता लेने की प्रोसेस पूरी करने के लिए, ऐप्लिकेशन पर वापस जा सकेगा.
अन्य मामलों में, ऐसा हो सकता है कि उपयोगकर्ता ने अपने मोबाइल डिवाइस से फ़्लो शुरू किया हो. ऐसे में, वह चाहता है कि पुष्टि हो जाने के बाद, उसे ब्राउज़र के बजाय मोबाइल ऐप्लिकेशन पर वापस भेज दिया जाए.
जारी रखने के यूआरएल के ज़रिए स्थिति को पास करने की सुविधा, Firebase Auth की एक अहम सुविधा है. इससे उपयोगकर्ता अनुभव को बेहतर बनाया जा सकता है.
ईमेल ऐक्शन में, जारी रखने वाले यूआरएल की स्थिति पास करना
जारी रखने के यूआरएल को सुरक्षित तरीके से पास करने के लिए, आपको यूआरएल के डोमेन को अनुमति वाले डोमेन के तौर पर जोड़ना होगा:
Firebase console में, सुरक्षा > पुष्टि करें > सेटिंग टैब पर जाएं.
अनुमति वाले डोमेन सेक्शन में जाकर, डोमेन जोड़ें पर क्लिक करें. इसके बाद, यूआरएल जोड़ें.
पासवर्ड रीसेट करने का ईमेल या पुष्टि करने का ईमेल भेजते समय, ActionCodeSettings इंस्टेंस देना ज़रूरी है. इसे ActionCodeSettings.Builder क्लास की मदद से बनाया जा सकता है. इसमें ये तरीके शामिल हैं:
| तरीका | ब्यौरा |
|---|---|
setUrl(String url) |
यह लिंक (स्टेट/जारी रखने का यूआरएल) सेट करता है. इसका मतलब अलग-अलग कॉन्टेक्स्ट में अलग-अलग होता है:
|
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 Hosting के लिंक कॉन्फ़िगर करना
Firebase Authentication, मोबाइल ऐप्लिकेशन में खोले जाने वाले लिंक को भेजने के लिए Firebase Hosting का इस्तेमाल करता है. इस सुविधा का इस्तेमाल करने के लिए, Firebase कंसोल में होस्टिंग लिंक कॉन्फ़िगर किए जाने चाहिए.
Android ऐप्लिकेशन कॉन्फ़िगर करना:
- अगर आपको अपने Android ऐप्लिकेशन से इन लिंक को मैनेज करना है, तो आपके ऐप्लिकेशन के पैकेज का नाम, Firebase कंसोल की प्रोजेक्ट सेटिंग में दिया जाना चाहिए. इसके अलावा, ऐप्लिकेशन के सर्टिफ़िकेट का SHA-1 और SHA-256 भी देना होगा.
- आपको अपनी
AndroidManifest.xmlफ़ाइल में, डीप लिंक के लिए इंटेंट फ़िल्टर भी कॉन्फ़िगर करना होगा. - इस बारे में ज़्यादा जानने के लिए, Android ऐप्लिकेशन के लिंक होस्ट करने के निर्देश पाना लेख पढ़ें.
iOS ऐप्लिकेशन कॉन्फ़िगर करना:
- अगर आपको इन लिंक को अपने iOS ऐप्लिकेशन से मैनेज करना है, तो आपको Hosting लिंक डोमेन को अपने ऐप्लिकेशन की सुविधाओं में, असोसिएटेड डोमेन के तौर पर कॉन्फ़िगर करना होगा.
- इस बारे में ज़्यादा जानने के लिए, 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 शामिल होंगे. बाद वाला, ActionCodeSettings ऑब्जेक्ट में दिया गया ओरिजनल URL होगा. ऐक्शन कोड को सीधे तौर पर मोबाइल ऐप्लिकेशन से लागू किया जा सकता है. इसे उसी तरह से मैनेज किया जाता है जिस तरह ईमेल हैंडलर को पसंद के मुताबिक बनाना सेक्शन में बताए गए वेब फ़्लो से मैनेज किया जाता है.
ईमेल की पुष्टि करने जैसी ईमेल से जुड़ी कार्रवाइयों को मैनेज करते समय, डीप लिंक से oobCode क्वेरी पैरामीटर से मिले ऐक्शन कोड को पार्स करना होता है.इसके बाद, बदलाव को लागू करने के लिए applyActionCode के ज़रिए इसे लागू करना होता है. जैसे, पुष्टि किया जाने वाला ईमेल.