पासवर्ड रीसेट के लिए ईमेल कार्रवाई भेजते समय या उपयोगकर्ता के ईमेल की पुष्टि करते समय आप जारी URL के माध्यम से स्थिति पास कर सकते हैं। यह क्रिया पूरी होने के बाद उपयोगकर्ता को ऐप पर वापस जाने की क्षमता प्रदान करता है। इसके अलावा, आप यह निर्दिष्ट कर सकते हैं कि ईमेल एक्शन लिंक को सीधे मोबाइल एप्लिकेशन से हैंडल करना है या नहीं, जब इसे वेब पेज के बजाय इंस्टॉल किया जाता है।
यह निम्नलिखित सामान्य परिदृश्यों में अत्यंत उपयोगी हो सकता है:
एक उपयोगकर्ता, जो वर्तमान में लॉग इन नहीं है, उस सामग्री तक पहुँचने का प्रयास कर सकता है जिसके लिए उपयोगकर्ता को साइन इन करने की आवश्यकता होती है। हालाँकि, उपयोगकर्ता अपना पासवर्ड भूल गया होगा और इसलिए रीसेट पासवर्ड प्रवाह को ट्रिगर कर सकता है। प्रवाह के अंत में, उपयोगकर्ता ऐप के उस अनुभाग पर वापस जाने की अपेक्षा करता है जिसे वे एक्सेस करने का प्रयास कर रहे थे।
एक एप्लिकेशन केवल सत्यापित खातों तक पहुंच प्रदान कर सकता है। उदाहरण के लिए, एक न्यूजलेटर को सदस्यता लेने से पहले उपयोगकर्ता को अपने ईमेल को सत्यापित करने की आवश्यकता हो सकती है। उपयोगकर्ता ईमेल सत्यापन प्रवाह से गुजरेगा और अपनी सदस्यता पूरी करने के लिए ऐप पर वापस जाने की अपेक्षा करेगा।
अन्य मामलों में, हो सकता है कि उपयोगकर्ता ने अपने मोबाइल डिवाइस से प्रवाह शुरू कर दिया हो और सत्यापन के बाद ब्राउज़र के बजाय अपने मोबाइल ऐप पर वापस लौटने की अपेक्षा करता हो।
एक जारी URL के माध्यम से राज्य पास करने की क्षमता होना एक शक्तिशाली विशेषता है जो फायरबेस ऑथ प्रदान करता है और जो उपयोगकर्ता अनुभव को महत्वपूर्ण रूप से बढ़ा सकता है।
ईमेल क्रियाओं में राज्य/जारी URL पास करना
जारी URL को सुरक्षित रूप से पास करने के लिए, URL के लिए डोमेन को Firebase कंसोल में श्वेतसूचीबद्ध करने की आवश्यकता होगी। यह इस डोमेन को साइन-इन विधि टैब के तहत अधिकृत डोमेन की सूची में जोड़कर प्रमाणीकरण अनुभाग में किया जाता है यदि यह पहले से मौजूद नहीं है।
पासवर्ड रीसेट ईमेल या सत्यापन ईमेल भेजते समय एक ActionCodeSettings उदाहरण प्रदान करने की आवश्यकता होती है। इसे संबंधित ActionCodeSettings.Builder वर्ग के साथ बनाया जा सकता है जिसमें निम्नलिखित विधियाँ हैं:
तरीका | विवरण |
---|---|
setUrl(String url) | लिंक सेट करता है (राज्य/जारी URL) जिसके अलग-अलग संदर्भों में अलग-अलग अर्थ हैं:
|
setIOSBundleId(String iOSBundleId) | आईओएस बंडल आईडी सेट करता है। यह स्थापित होने पर आईओएस ऐप में लिंक खोलने का प्रयास करेगा। आईओएस ऐप को कंसोल में पंजीकृत करने की जरूरत है। |
setAndroidPackageName(String androidPackageName, boolean installIfNotAvailable, String minimumVersion) | Android पैकेज का नाम सेट करता है। यह स्थापित होने पर एंड्रॉइड ऐप में लिंक खोलने का प्रयास करेगा। यदि installIfNotAvailable को true पर सेट किया गया है, तो यह निर्दिष्ट करता है कि क्या डिवाइस इसका समर्थन करता है और ऐप पहले से इंस्टॉल नहीं है, तो एंड्रॉइड ऐप इंस्टॉल करना है या नहीं। यदि न्यूनतम संस्करण निर्दिष्ट किया गया है, और ऐप का पुराना संस्करण स्थापित है, तो ऐप को अपग्रेड करने के लिए उपयोगकर्ता को प्ले स्टोर पर ले जाया जाता है। Android ऐप को कंसोल में पंजीकृत करने की आवश्यकता है। |
setHandleCodeInApp(boolean status) | ईमेल एक्शन लिंक को पहले मोबाइल ऐप या वेब लिंक में खोला जाएगा या नहीं। डिफॉल्ट गलत है। सही पर सेट होने पर, एक्शन कोड लिंक को यूनिवर्सल लिंक या एंड्रॉइड ऐप लिंक के रूप में भेजा जाएगा और इंस्टॉल होने पर ऐप द्वारा खोला जाएगा। झूठे मामले में, कोड पहले वेब विजेट को भेजा जाएगा और फिर जारी रहने पर ऐप इंस्टॉल होने पर रीडायरेक्ट करेगा। |
setDynamicLinkDomain(String dynamicLinkDomain) | डायनामिक लिंक डोमेन (या सबडोमेन) को वर्तमान लिंक के लिए उपयोग करने के लिए सेट करता है यदि इसे फायरबेस डायनेमिक लिंक का उपयोग करके खोला जाना है। चूंकि प्रति प्रोजेक्ट एकाधिक डायनेमिक लिंक डोमेन कॉन्फ़िगर किए जा सकते हैं, यह फ़ील्ड स्पष्ट रूप से किसी एक को चुनने की क्षमता प्रदान करता है। यदि कोई प्रदान नहीं किया जाता है, तो पहले डोमेन का उपयोग डिफ़ॉल्ट रूप से किया जाता है। |
निम्न उदाहरण दिखाता है कि एक ईमेल सत्यापन लिंक कैसे भेजा जाए जो पहले फायरबेस डायनेमिक लिंक (iOS ऐप com.example.ios
या Android ऐप com.example.android
) के रूप में एक मोबाइल ऐप में खुलेगा। डीप लिंक में जारी URL पेलोड https://www.example.com/?email=user@example.com
होगा।
Kotlin+KTX
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 कंसोल में, डायनामिक लिंक अनुभाग खोलें।
यदि आपने अभी तक डायनामिक लिंक शर्तों को स्वीकार नहीं किया है और डायनामिक लिंक्स डोमेन बनाया है, तो अभी ऐसा करें।
यदि आपने पहले ही डायनेमिक लिंक्स डोमेन बना लिया है, तो इस पर ध्यान दें। एक डायनेमिक लिंक डोमेन आमतौर पर निम्न उदाहरण जैसा दिखता है:
example.page.link
जब आप इनकमिंग लिंक को इंटरसेप्ट करने के लिए अपने Apple या Android ऐप को कॉन्फ़िगर करते हैं तो आपको इस मान की आवश्यकता होगी।
Android एप्लिकेशन कॉन्फ़िगर करना:
- यदि आप अपने Android एप्लिकेशन से इन लिंक को प्रबंधित करने की योजना बना रहे हैं, तो Android पैकेज नाम को Firebase कंसोल प्रोजेक्ट सेटिंग में निर्दिष्ट करने की आवश्यकता है। इसके अलावा, आवेदन प्रमाणपत्र के SHA-1 और SHA-256 प्रदान करने की आवश्यकता है।
- आपको AndroidManifest.xml फ़ाइल में डीप लिंक के लिए इंटेंट फ़िल्टर को कॉन्फ़िगर करने की भी आवश्यकता होगी।
- इस पर अधिक जानकारी के लिए, Android डायनेमिक लिंक निर्देश प्राप्त करना देखें।
IOS अनुप्रयोगों को कॉन्फ़िगर करना:
- यदि आप अपने iOS एप्लिकेशन से इन लिंक्स को प्रबंधित करने की योजना बना रहे हैं, तो iOS बंडल आईडी को Firebase कंसोल प्रोजेक्ट सेटिंग्स में निर्दिष्ट करने की आवश्यकता है। इसके अलावा, ऐप स्टोर आईडी और ऐप्पल डेवलपर टीम आईडी भी निर्दिष्ट करने की आवश्यकता है।
- आपको अपनी एप्लिकेशन क्षमताओं में FDL यूनिवर्सल लिंक डोमेन को संबद्ध डोमेन के रूप में कॉन्फ़िगर करने की भी आवश्यकता होगी।
- यदि आप अपने एप्लिकेशन को iOS संस्करण 8 और उससे कम में वितरित करने की योजना बना रहे हैं, तो आपको आने वाले URL के लिए अपनी iOS बंडल आईडी को एक कस्टम स्कीम के रूप में सेट करना होगा।
- इस पर अधिक जानकारी के लिए, आईओएस डायनेमिक लिंक निर्देश प्राप्त करना देखें।
वेब एप्लिकेशन में ईमेल क्रियाओं को संभालना
आप यह निर्दिष्ट कर सकते हैं कि क्या आप पहले किसी वेब एप्लिकेशन से एक्शन कोड लिंक को संभालना चाहते हैं और फिर सफल समापन के बाद किसी अन्य वेब पेज या मोबाइल एप्लिकेशन पर रीडायरेक्ट करना चाहते हैं, बशर्ते मोबाइल एप्लिकेशन उपलब्ध हो। यह ActionCodeSettings.Builder ऑब्जेक्ट में setHandleCodeInApp(false)
को कॉल करके किया जाता है। जबकि आईओएस बंडल आईडी या एंड्रॉइड पैकेज नाम की आवश्यकता नहीं है, उन्हें प्रदान करने से उपयोगकर्ता को ईमेल एक्शन कोड पूरा होने पर निर्दिष्ट ऐप पर वापस रीडायरेक्ट करने की अनुमति मिल जाएगी।
यहां इस्तेमाल किया गया वेब यूआरएल ईमेल एक्शन टेम्प्लेट सेक्शन में कॉन्फ़िगर किया गया है। सभी परियोजनाओं के लिए एक डिफ़ॉल्ट प्रावधान किया गया है। ईमेल क्रिया हैंडलर को अनुकूलित करने के तरीके के बारे में अधिक जानने के लिए ईमेल हैंडलर को अनुकूलित करना देखें।
इस मामले में, continueUrl
URL क्वेरी पैरामीटर के भीतर लिंक एक FDL लिंक होगा जिसका पेलोड ActionCodeSettings
ऑब्जेक्ट में निर्दिष्ट URL
है। जबकि आप बिना किसी अतिरिक्त निर्भरता के अपने ऐप से आने वाले लिंक को इंटरसेप्ट और हैंडल कर सकते हैं, हम आपके लिए डीप लिंक को पार्स करने के लिए FDL क्लाइंट लाइब्रेरी का उपयोग करने की सलाह देते हैं।
ईमेल सत्यापन जैसे ईमेल क्रियाओं को संभालते समय, oobCode
क्वेरी पैरामीटर से क्रिया कोड को डीप लिंक से पार्स करने की आवश्यकता होती है और फिर परिवर्तन के प्रभावी होने के लिए applyActionCode
के माध्यम से लागू किया जाता है, अर्थात ईमेल को सत्यापित किया जाना है।
मोबाइल एप्लिकेशन में ईमेल क्रियाओं को संभालना
आप यह निर्दिष्ट कर सकते हैं कि क्या आप पहले अपने मोबाइल एप्लिकेशन में एक्शन कोड लिंक को हैंडल करना चाहते हैं, बशर्ते कि यह इंस्टॉल हो। Android एप्लिकेशन के साथ, आपके पास installIfNotAvailable
बूलियन के माध्यम से यह निर्दिष्ट करने की क्षमता भी है कि यदि डिवाइस इसका समर्थन करता है और यह पहले से इंस्टॉल नहीं है तो ऐप को इंस्टॉल किया जाना है। यदि लिंक को किसी ऐसे उपकरण से क्लिक किया जाता है जो मोबाइल एप्लिकेशन का समर्थन नहीं करता है, तो इसे वेब पेज से खोला जाता है। यह ActionCodeSettings.Builder ऑब्जेक्ट में setHandleCodeInApp(true)
को कॉल करके किया जाता है। मोबाइल एप्लिकेशन का Android पैकेज नाम या iOS बंडल आईडी भी निर्दिष्ट करने की आवश्यकता होगी।
जब कोई मोबाइल ऐप उपलब्ध नहीं होता है, तो यहां उपयोग किया जाने वाला फ़ॉलबैक वेब URL ईमेल एक्शन टेम्प्लेट अनुभाग में कॉन्फ़िगर किया गया URL होता है। सभी परियोजनाओं के लिए एक डिफ़ॉल्ट प्रावधान किया गया है। ईमेल क्रिया हैंडलर को अनुकूलित करने के तरीके के बारे में अधिक जानने के लिए ईमेल हैंडलर को अनुकूलित करना देखें।
इस मामले में, उपयोगकर्ता को भेजा गया मोबाइल ऐप लिंक एक FDL लिंक होगा जिसका पेलोड क्वेरी पैरामीटर oobCode
, mode
, apiKey
और continueUrl
के साथ कंसोल में कॉन्फ़िगर किया गया एक्शन कोड URL है। बाद वाला ActionCodeSettings
ऑब्जेक्ट में निर्दिष्ट मूल URL
होगा। जबकि आप बिना किसी अतिरिक्त निर्भरता के अपने ऐप से आने वाले लिंक को इंटरसेप्ट और हैंडल कर सकते हैं, हम आपके लिए डीप लिंक को पार्स करने के लिए FDL क्लाइंट लाइब्रेरी का उपयोग करने की सलाह देते हैं। एक्शन कोड को मोबाइल एप्लिकेशन से सीधे उसी तरह लागू किया जा सकता है जैसे कस्टमाइजिंग ईमेल हैंडलर सेक्शन में बताए गए वेब फ्लो से इसे कैसे हैंडल किया जाता है।
ईमेल सत्यापन जैसे ईमेल क्रियाओं को संभालते समय, oobCode
क्वेरी पैरामीटर से क्रिया कोड को डीप लिंक से पार्स करने की आवश्यकता होती है और फिर परिवर्तन के प्रभावी होने के लिए applyActionCode
के माध्यम से लागू किया जाता है, अर्थात ईमेल को सत्यापित किया जाना है।