पासवर्ड रीसेट करने के लिए ईमेल कार्रवाइयां भेजते समय या किसी उपयोगकर्ता के ईमेल की पुष्टि करते समय, आप जारी रखने वाले यूआरएल के ज़रिए स्थिति पास कर सकते हैं. इससे उपयोगकर्ता को कार्रवाई पूरी होने के बाद ऐप्लिकेशन पर वापस जाने की सुविधा मिलती है. इसके अलावा, आपके पास यह तय करने का विकल्प भी होता है कि ईमेल कार्रवाई के लिंक को वेब पेज के बजाय, सीधे मोबाइल ऐप्लिकेशन से इंस्टॉल किया जाए या नहीं.
इन सामान्य स्थितियों में यह बहुत मददगार साबित हो सकता है:
अगर कोई उपयोगकर्ता फ़िलहाल लॉग इन नहीं है, तो हो सकता है कि वह ऐसा कॉन्टेंट ऐक्सेस करने की कोशिश कर रहा हो जिसके लिए उसे साइन इन करना ज़रूरी है. हालांकि, हो सकता है कि उपयोगकर्ता अपना पासवर्ड भूल गया हो. इस वजह से, पासवर्ड रीसेट हो जाता है. फ़्लो के आखिर में, उपयोगकर्ता को ऐप्लिकेशन के उस सेक्शन पर वापस जाना होता है जिसे वह ऐक्सेस करने की कोशिश कर रहा था.
ऐसा हो सकता है कि कोई ऐप्लिकेशन सिर्फ़ पुष्टि किए गए खातों को ऐक्सेस करने की सुविधा दे. उदाहरण के लिए, न्यूज़लेटर ऐप्लिकेशन की सदस्यता लेने से पहले, लोगों को अपने ईमेल पते की पुष्टि करने के लिए कहना पड़ सकता है. उपयोगकर्ता को ईमेल पते की पुष्टि की प्रक्रिया से गुज़रना होगा और उसे उम्मीद होगी कि वह अपनी सदस्यता पूरी करने के लिए ऐप्लिकेशन पर वापस आएगा.
आम तौर पर, जब कोई उपयोगकर्ता Apple के किसी ऐप्लिकेशन पर पासवर्ड रीसेट या ईमेल से पुष्टि करने की प्रक्रिया शुरू करता है, तो वह उम्मीद करता है कि वह ऐप्लिकेशन में ही फ़्लो पूरा कर देगा. 'जारी रखें' यूआरएल की मदद से 'स्टेटस पास करना' सुविधा की मदद से ऐसा किया जा सकता है.
जारी रखने वाले यूआरएल के ज़रिए स्थिति पास करने की सुविधा एक बेहतरीन सुविधा है. Firebase Auth इस सुविधा से उपयोगकर्ता अनुभव को काफ़ी बेहतर बनाती है.
पास होने की स्थिति/ईमेल पर की जाने वाली कार्रवाइयों में यूआरएल का इस्तेमाल जारी रखें
जारी रखने वाले यूआरएल को सुरक्षित तरीके से भेजने के लिए, यूआरएल के डोमेन को Firebase कंसोल में व्हाइटलिस्ट में शामिल करना ज़रूरी है. ऐसा पुष्टि करने वाले सेक्शन में किया जाता है. इसके लिए, इस डोमेन को साइन इन करने का तरीका टैब में, अनुमति वाले डोमेन की सूची में जोड़ें, अगर यह सूची पहले से मौजूद नहीं है.
पासवर्ड रीसेट ईमेल या पुष्टि करने वाला ईमेल भेजते समय, FIRActionCodeSettings
इंस्टेंस देना ज़रूरी है. यह इंटरफ़ेस नीचे दिए गए पैरामीटर
का इस्तेमाल करता है:
Swift
पैरामीटर | टाइप | जानकारी |
---|---|---|
URL |
स्ट्रिंग | यह ऐसा लिंक (स्टेट या जारी रखें यूआरएल) सेट करता है जिसका अलग-अलग मतलब अलग-अलग होता है:
|
iOSBundleID |
स्ट्रिंग | बंडल आईडी सेट करता है. ऐसा करने से, Apple के ऐप्लिकेशन में मौजूद लिंक को खोलने की कोशिश की जाएगी. हालांकि, इसके लिए ज़रूरी है कि वह ऐप्लिकेशन इंस्टॉल हो. ऐप्लिकेशन, Console में रजिस्टर होना चाहिए. अगर कोई बंडल आईडी नहीं दिया गया है, तो इस फ़ील्ड का मान ऐप्लिकेशन के मुख्य बंडल के बंडल आईडी पर सेट कर दिया जाता है. |
androidPackageName |
स्ट्रिंग | Android पैकेज का नाम सेट करता है. ऐसा करने से, Android ऐप्लिकेशन के इंस्टॉल होने पर, उस लिंक को उसमें खोलने की कोशिश की जाएगी. |
androidInstallIfNotAvailable |
बूल | इससे पता चलता है कि अगर डिवाइस पर Android ऐप्लिकेशन काम करता है और उसे पहले से इंस्टॉल नहीं किया गया है, तो उसे इंस्टॉल करना है या नहीं. अगर इस फ़ील्ड को PackageName के बिना दिया जाता है, तो एक गड़बड़ी दिखती है. इसमें यह बताया जाता है कि इस फ़ील्ड के साथ-साथ PackageName को भी दिया जाना चाहिए. |
androidMinimumVersion |
स्ट्रिंग | ऐप्लिकेशन का वह कम से कम वर्शन जो इस फ़्लो में काम करता हो. अगर कम से कम वर्शन के बारे में बताया गया है और ऐप्लिकेशन का पुराना वर्शन इंस्टॉल किया गया है, तो ऐप्लिकेशन को अपग्रेड करने के लिए उपयोगकर्ता को Play Store पर ले जाया जाता है. Android ऐप्लिकेशन को Console में रजिस्टर करना ज़रूरी है. |
handleCodeInApp |
बूल | ईमेल कार्रवाई के लिंक को मोबाइल ऐप्लिकेशन या वेब लिंक में खोला जाएगा या नहीं. डिफ़ॉल्ट रूप से, यह वैल्यू 'गलत' पर सेट होती है. अगर नीति को 'सही है' पर सेट किया जाता है, तो ऐक्शन कोड के लिंक को यूनिवर्सल लिंक या Android ऐप्लिकेशन के लिंक के तौर पर भेजा जाएगा. अगर ऐप्लिकेशन इंस्टॉल हो, तो उसे ऐप्लिकेशन में खोला जाएगा. गलत मामले में, कोड को सबसे पहले वेब विजेट पर भेजा जाएगा. इसके बाद, अगर ऐप्लिकेशन इंस्टॉल हो, तो जारी रखने पर, उसे ऐप्लिकेशन पर रीडायरेक्ट किया जाएगा. |
dynamicLinkDomain |
स्ट्रिंग | अगर मौजूदा लिंक को Firebase डाइनैमिक लिंक का इस्तेमाल करके खोला जाना है, तो यह डाइनैमिक लिंक डोमेन (या सबडोमेन) को मौजूदा लिंक के लिए इस्तेमाल करता है. हर प्रोजेक्ट में एक से ज़्यादा डाइनैमिक लिंक डोमेन कॉन्फ़िगर किए जा सकते हैं. इस फ़ील्ड की मदद से, किसी एक डोमेन को साफ़ तौर पर चुना जा सकता है. अगर कोई डोमेन नहीं दिया गया है, तो डिफ़ॉल्ट रूप से पहले डोमेन का इस्तेमाल किया जाता है. |
Objective-C
पैरामीटर | टाइप | जानकारी |
---|---|---|
URL |
एनएसस्ट्रिंग | यह ऐसा लिंक (स्टेट या जारी रखें यूआरएल) सेट करता है जिसका अलग-अलग मतलब अलग-अलग होता है:
|
iOSBundleID |
एनएसस्ट्रिंग | बंडल आईडी सेट करता है. ऐसा करने से, Apple के ऐप्लिकेशन में मौजूद लिंक को खोलने की कोशिश की जाएगी. हालांकि, इसके लिए ज़रूरी है कि वह ऐप्लिकेशन इंस्टॉल हो. ऐप्लिकेशन, Console में रजिस्टर होना चाहिए. |
androidPackageName |
एनएसस्ट्रिंग | Android पैकेज का नाम सेट करता है. ऐसा करने से, Android ऐप्लिकेशन के इंस्टॉल होने पर, उस लिंक को उसमें खोलने की कोशिश की जाएगी. |
androidInstallIfNotAvailable |
BOOL | यह तय करता है कि अगर डिवाइस पर Android ऐप्लिकेशन काम करता है और उसे पहले से इंस्टॉल नहीं किया गया है, तो उसे इंस्टॉल करना है या नहीं. अगर इस फ़ील्ड को PackageName के बिना दिया जाता है, तो एक गड़बड़ी दिखती है. इसमें यह बताया जाता है कि इस फ़ील्ड के साथ-साथ PackageName को भी दिया जाना चाहिए. |
androidMinimumVersion |
एनएसस्ट्रिंग | ऐप्लिकेशन का वह कम से कम वर्शन जो इस फ़्लो में काम करता हो. अगर कम से कम वर्शन के बारे में बताया गया है और ऐप्लिकेशन का पुराना वर्शन इंस्टॉल किया गया है, तो ऐप्लिकेशन को अपग्रेड करने के लिए उपयोगकर्ता को Play Store पर ले जाया जाता है. Android ऐप्लिकेशन को Console में रजिस्टर करना ज़रूरी है. |
handleCodeInApp |
BOOL | ईमेल कार्रवाई के लिंक को मोबाइल ऐप्लिकेशन या वेब लिंक में खोला जाएगा या नहीं. डिफ़ॉल्ट रूप से, यह वैल्यू 'गलत' पर सेट होती है. अगर नीति को 'सही है' पर सेट किया जाता है, तो ऐक्शन कोड के लिंक को यूनिवर्सल लिंक या Android ऐप्लिकेशन के लिंक के तौर पर भेजा जाएगा. अगर ऐप्लिकेशन इंस्टॉल हो, तो उसे ऐप्लिकेशन में खोला जाएगा. गलत मामले में, कोड को सबसे पहले वेब विजेट पर भेजा जाएगा. इसके बाद, अगर ऐप्लिकेशन इंस्टॉल हो, तो जारी रखने पर, उसे ऐप्लिकेशन पर रीडायरेक्ट किया जाएगा. |
dynamicLinkDomain |
एनएसस्ट्रिंग | अगर मौजूदा लिंक को Firebase डाइनैमिक लिंक का इस्तेमाल करके खोला जाना है, तो यह डाइनैमिक लिंक डोमेन (या सबडोमेन) को मौजूदा लिंक के लिए इस्तेमाल करता है. हर प्रोजेक्ट में एक से ज़्यादा डाइनैमिक लिंक डोमेन कॉन्फ़िगर किए जा सकते हैं. इस फ़ील्ड की मदद से, किसी एक डोमेन को साफ़ तौर पर चुना जा सकता है. अगर कोई डोमेन नहीं दिया गया है, तो डिफ़ॉल्ट रूप से पहले डोमेन का इस्तेमाल किया जाता है. |
नीचे दिए गए उदाहरण में, कस्टम डाइनैमिक लिंक डोमेन example.page.link
का इस्तेमाल करके, ईमेल की पुष्टि करने वाले लिंक को भेजने का तरीका बताया गया है. यह लिंक, मोबाइल ऐप्लिकेशन में सबसे पहले Firebase डाइनैमिक लिंक के तौर पर खुलेगा. यह लिंक, कस्टम डाइनैमिक लिंक डोमेन example.page.link
का इस्तेमाल करता है. iOS ऐप्लिकेशन com.example.ios
या Android ऐप्लिकेशन com.example.android
, अगर ऐप्लिकेशन पहले से इंस्टॉल न होने और कम से कम वर्शन 12
है, तो ऐप्लिकेशन इंस्टॉल हो जाएगा. डीप लिंक में, यूआरएल का पेलोड जारी रखेंhttps://www.example.com/?email=user@example.com
शामिल होगा.
Swift
var actionCodeSettings = ActionCodeSettings.init() actionCodeSettings.canHandleInApp = true let user = Auth.auth().currentUser() actionCodeSettings.URL = String(format: "https://www.example.com/?email=%@", user.email) actionCodeSettings.iOSbundleID = Bundle.main.bundleIdentifier! actionCodeSettings.setAndroidPakageName("com.example.android", installIfNotAvailable:true, minimumVersion:"12") // When multiple custom dynamic link domains are defined, specify which one to use. actionCodeSettings.dynamicLinkDomain = "example.page.link" user.sendEmailVerification(withActionCodeSettings:actionCodeSettings { error in if error { // Error occurred. Inspect error.code and handle error. return } // Email verification sent. })
Objective-C
FIRActionCodeSettings *actionCodeSettings = [[FIRActionCodeSettings alloc] init]; actionCodeSettings.handleCodeInApp = YES; FIRUser *user = [FIRAuth auth].currentUser; NSString *urlString = [NSString stringWithFormat:@"https://www.example.com/?email=%@", user.email]; actionCodeSettings.URL = [NSURL URLWithString:urlString]; actionCodeSettings.iOSBundleID = [NSBundle mainBundle].bundleIdentifier; // When multiple custom dynamic link domains are defined, specify which one to use. actionCodeSettings.dynamicLinkDomain = @"example.page.link"; [actionCodeSettings setAndroidPackageName:@"com.example.android" installIfNotAvailable:YES minimumVersion:'12']; [user sendEmailVerificationWithActionCodeSettings:actionCodeSettings completion:^(NSError *_Nullable error) { if (error) { // Error occurred. Inspect error.code and handle error. return; } // Email verification sent. }];
Firebase डाइनैमिक लिंक कॉन्फ़िगर करना
Firebase पुष्टि करने की सुविधा, Firebase डाइनैमिक लिंक का इस्तेमाल करके ऐसा लिंक भेजती है जिसे मोबाइल ऐप्लिकेशन में खोला जा सकता है. इस सुविधा का इस्तेमाल करने के लिए, डाइनैमिक लिंक को Firebase कंसोल में कॉन्फ़िगर करना होगा.
Firebase डाइनैमिक लिंक चालू करें:
- Firebase कंसोल में, डाइनैमिक लिंक सेक्शन खोलें.
-
अगर आपने अभी तक डाइनैमिक लिंक की शर्तों को स्वीकार नहीं किया है और डाइनैमिक लिंक डोमेन बना लिया है, तो यह काम अभी कर लें.
अगर आपने पहले ही डाइनैमिक लिंक डोमेन बना लिया है, तो उस पर ध्यान दें. आम तौर पर, डाइनैमिक लिंक डोमेन का उदाहरण नीचे दिया गया है:
example.page.link
आपको इस वैल्यू की ज़रूरत तब होगी, जब Apple या Android ऐप्लिकेशन को इनकमिंग लिंक को इंटरसेप्ट करने के लिए कॉन्फ़िगर किया जा रहा हो.
Android ऐप्लिकेशन कॉन्फ़िगर करना:
- अगर आपको अपने Android ऐप्लिकेशन से ये लिंक मैनेज करने हैं, तो Android पैकेज का नाम Firebase कंसोल प्रोजेक्ट की सेटिंग में तय करना ज़रूरी है. इसके अलावा, ऐप्लिकेशन सर्टिफ़िकेट का SHA-1 और SHA-256 भी देना होगा.
- आपको AndroidManifest.xml फ़ाइल में डीप लिंक के लिए, इंटेंट फ़िल्टर को भी कॉन्फ़िगर करना होगा.
- इस बारे में ज़्यादा जानने के लिए, Android डाइनैमिक लिंक पाने से जुड़े निर्देश देखें.
Apple ऐप्लिकेशन कॉन्फ़िगर करना:
- अगर आप अपने ऐप्लिकेशन से इन लिंक को मैनेज करना चाहते हैं, तो बंडल आईडी को Firebase कंसोल प्रोजेक्ट सेटिंग में तय करना ज़रूरी है. इसके अलावा, ऐप स्टोर आईडी और Apple डेवलपर टीम आईडी को भी बताना ज़रूरी है.
- आपको अपने ऐप्लिकेशन की क्षमताओं में, एफ़डीएल यूनिवर्सल लिंक डोमेन को असोसिएटेड डोमेन के तौर पर भी कॉन्फ़िगर करना होगा.
- अगर आपको अपना ऐप्लिकेशन iOS 8 और इससे पहले के वर्शन पर उपलब्ध कराना है, तो आपको अपने बंडल आईडी को इनकमिंग यूआरएल के लिए, कस्टम स्कीम के तौर पर सेट करना होगा.
- इस बारे में ज़्यादा जानने के लिए, Apple प्लैटफ़ॉर्म के डाइनैमिक लिंक पाने के निर्देश देखें.
किसी वेब ऐप्लिकेशन में ईमेल कार्रवाइयों को मैनेज करना
यह तय किया जा सकता है कि पहले किसी वेब ऐप्लिकेशन से, ऐक्शन कोड के लिंक को हैंडल करना है या नहीं. इसके बाद, काम पूरा होने के बाद, दूसरे वेब पेज या मोबाइल ऐप्लिकेशन पर रीडायरेक्ट किया जा सकता है. हालांकि, इसके लिए ज़रूरी है कि मोबाइल ऐप्लिकेशन उपलब्ध हो.
ऐसा करने के लिए, FIRActionCodeSettings
(Obj-C) या ActionCodeSettings
(Swift) ऑब्जेक्ट में handleCodeInApp
को false
पर सेट करें. बंडल आईडी या
Android पैकेज का नाम डालना ज़रूरी नहीं है. हालांकि, इन्हें देने से उपयोगकर्ता, ईमेल
कार्रवाई कोड पूरा होने पर, बताए गए ऐप्लिकेशन पर वापस रीडायरेक्ट कर पाएगा.
यहां जिस वेब यूआरएल का इस्तेमाल किया गया है उसे ईमेल ऐक्शन टेंप्लेट सेक्शन में कॉन्फ़िगर किया गया है. सभी प्रोजेक्ट के लिए डिफ़ॉल्ट तौर पर सेट किया जाता है. ईमेल कार्रवाई हैंडलर को पसंद के मुताबिक बनाने के तरीके के बारे में ज़्यादा जानने के लिए, ईमेल हैंडलर को पसंद के मुताबिक बनाना लेख पढ़ें.
इस मामले में, continueURL
क्वेरी पैरामीटर में मौजूद लिंक
एक एफ़डीएल लिंक होगा, जिसका पेलोड ActionCodeSettings
ऑब्जेक्ट में बताया गया URL
है. आपके पास किसी अन्य डिपेंडेंसी के बिना, अपने ऐप्लिकेशन से आने वाले लिंक को रोकने और मैनेज करने का विकल्प है. हालांकि, हमारा सुझाव है कि डीप लिंक को पार्स करने के लिए, एफ़डीएल क्लाइंट लाइब्रेरी का इस्तेमाल करें.
ईमेल से जुड़ी कार्रवाइयों को मैनेज करते समय, oobCode
क्वेरी पैरामीटर से मिले ऐक्शन कोड को डीप लिंक से पार्स करना होगा. इसके बाद, बदलाव को लागू करने के लिए applyActionCode
से लागू करना होगा, यानी कि पुष्टि के लिए ईमेल.
मोबाइल ऐप्लिकेशन में ईमेल कार्रवाइयां मैनेज करना
आप यह बता सकते हैं कि क्या आप अपने मोबाइल ऐप्लिकेशन में कार्रवाई कोड लिंक को पहले हैंडल करना चाहते हैं, बशर्ते कि वह इंस्टॉल हो. Android ऐप्लिकेशन में,
आप androidInstallIfNotAvailable
के ज़रिए यह भी बता सकते हैं कि
ऐप्लिकेशन को इंस्टॉल किया जाना चाहिए या नहीं. ऐसा तब किया जा सकता है,
जब डिवाइस पर यह सुविधा काम करती हो और वह पहले से
इंस्टॉल न हो.
अगर लिंक पर किसी ऐसे डिवाइस से क्लिक किया जाता है जो मोबाइल ऐप्लिकेशन के साथ काम नहीं करता, तो उसे किसी वेब पेज से खोला जाता है.
ऐसा करने के लिए, FIRActionCodeSettings
(Obj-C) या ActionCodeSettings
(Swift) ऑब्जेक्ट में handleCodeInApp
को true
पर सेट करें. मोबाइल ऐप्लिकेशन के Android पैकेज का नाम या बंडल आईडी भी बताना ज़रूरी है.यहां इस्तेमाल किया जाने वाला फ़ॉलबैक वेब यूआरएल, जब कोई मोबाइल ऐप्लिकेशन उपलब्ध नहीं होता है, तो उसे ईमेल कार्रवाई टेंप्लेट सेक्शन में कॉन्फ़िगर किया जाता है. डिफ़ॉल्ट तौर पर, सभी प्रोजेक्ट के लिए
एक डिफ़ॉल्ट वैल्यू असाइन की जाती है. ईमेल कार्रवाई हैंडलर को पसंद के मुताबिक बनाने के तरीके के बारे में ज़्यादा जानने के लिए, ईमेल हैंडलर को पसंद के मुताबिक बनाना लेख पढ़ें.
इस मामले में, उपयोगकर्ता को भेजा गया मोबाइल ऐप्लिकेशन लिंक एक एफ़डीएल लिंक होगा. इसका पेलोड, ऐक्शन कोड यूआरएल है और इसे Console में कॉन्फ़िगर किया गया है.
इसके लिए, oobCode
, mode
, apiKey
, और continueUrl
क्वेरी पैरामीटर इस्तेमाल किए गए हैं. बाद वाला कोड, FIRActionCodeSettings
(Obj-C) या ActionCodeSettings
(Swift) ऑब्जेक्ट में बताया गया ओरिजनल URL
होगा. आपके पास किसी अतिरिक्त डिपेंडेंसी के बिना, अपने ऐप्लिकेशन के आने वाले लिंक को रोकने और मैनेज करने का विकल्प है. हालांकि, हमारा सुझाव है कि डीप लिंक को पार्स करने के लिए, एफ़डीएल क्लाइंट लाइब्रेरी का इस्तेमाल करें. कार्रवाई कोड को सीधे मोबाइल ऐप्लिकेशन से उसी तरह लागू किया जा सकता है जिस तरह इसे ईमेल हैंडलर कस्टमाइज़ करना सेक्शन में बताए गए वेब फ़्लो से मैनेज किया जाता है.
ईमेल से जुड़ी कार्रवाइयों को मैनेज करते समय, oobCode
क्वेरी पैरामीटर से मिले ऐक्शन कोड को डीप लिंक से पार्स करना होगा. इसके बाद, बदलाव को लागू करने के लिए applyActionCode
से लागू करना होगा, यानी कि पुष्टि के लिए ईमेल.