पासवर्ड रीसेट करने या उपयोगकर्ता के ईमेल की पुष्टि करने के लिए, ईमेल से जुड़ी कार्रवाइयां भेजते समय, जारी रखने के यूआरएल के ज़रिए स्टेट पास की जा सकती है. इससे उपयोगकर्ता को कार्रवाई पूरी होने के बाद, ऐप्लिकेशन पर वापस जाने की सुविधा मिलती है. इसके अलावा, यह भी तय किया जा सकता है कि जब मोबाइल ऐप्लिकेशन इंस्टॉल हो, तब ईमेल ऐक्शन लिंक को वेब पेज के बजाय सीधे तौर पर मोबाइल ऐप्लिकेशन से हैंडल किया जाए या नहीं.
यह सुविधा, इन सामान्य स्थितियों में बहुत मददगार हो सकती है:
ऐसा हो सकता है कि कोई ऐसा उपयोगकर्ता कॉन्टेंट ऐक्सेस करने की कोशिश कर रहा हो जिसने अभी लॉग इन नहीं किया है. हालांकि, इस कॉन्टेंट को ऐक्सेस करने के लिए, उपयोगकर्ता को लॉग इन करना ज़रूरी है. हालांकि, ऐसा हो सकता है कि उपयोगकर्ता अपना पासवर्ड भूल गया हो. इसलिए, वह पासवर्ड रीसेट करने का अनुरोध कर रहा हो. फ़्लो के आखिर में, उपयोगकर्ता को ऐप्लिकेशन के उस सेक्शन पर वापस जाने की उम्मीद होती है जिसे वह ऐक्सेस करने की कोशिश कर रहा था.
कोई ऐप्लिकेशन, सिर्फ़ उन खातों का ऐक्सेस दे सकता है जिनकी पुष्टि हो चुकी है. उदाहरण के लिए, हो सकता है कि किसी न्यूज़लेटर की सदस्यता लेने से पहले, उपयोगकर्ता को अपने ईमेल पते की पुष्टि करनी पड़े. उपयोगकर्ता को ईमेल से पुष्टि करने की प्रोसेस पूरी करनी होगी. इसके बाद, वह सदस्यता लेने की प्रोसेस पूरी करने के लिए, ऐप्लिकेशन पर वापस जा सकेगा.
अन्य मामलों में, ऐसा हो सकता है कि उपयोगकर्ता ने अपने मोबाइल डिवाइस से फ़्लो शुरू किया हो. ऐसे में, वह चाहता है कि पुष्टि होने के बाद, उसे ब्राउज़र के बजाय वापस मोबाइल ऐप्लिकेशन पर रीडायरेक्ट किया जाए.
जारी रखने के यूआरएल के ज़रिए स्थिति को पास करने की सुविधा, Firebase Auth की एक अहम सुविधा है. इससे उपयोगकर्ता अनुभव को बेहतर बनाया जा सकता है.
ईमेल में की जाने वाली कार्रवाइयों में, जारी रखने वाले यूआरएल की स्थिति को पास करना
जारी रखने के यूआरएल को सुरक्षित तरीके से पास करने के लिए, यूआरएल के डोमेन को Firebase कंसोल में श्वेतसूची में शामिल करना होगा. अगर यह डोमेन पहले से मौजूद नहीं है, तो इसे साइन-इन करने का तरीका टैब में जाकर, पुष्टि सेक्शन में जोड़ें. इसके लिए, अनुमति वाले डोमेन की सूची में यह डोमेन जोड़ें.
पासवर्ड रीसेट करने का ईमेल या पुष्टि करने का ईमेल भेजते समय, 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
के ज़रिए इसे लागू करना होगा. इसका मतलब है कि ईमेल की पुष्टि की जानी है.