पासवर्ड के लिए ईमेल कार्रवाइयां भेजते समय आप जारी रखें यूआरएल के ज़रिए स्थिति पास कर सकते हैं उपयोगकर्ता के ईमेल को रीसेट या पुष्टि करता है. इससे उपयोगकर्ता को यह समझने की सुविधा मिलती है कि कार्रवाई पूरी होने के बाद, ऐप्लिकेशन पर वापस चले जाएंगे. इसके अतिरिक्त, आप क्या ईमेल कार्रवाई लिंक को सीधे किसी मोबाइल ऐप्लिकेशन से हैंडल करना है या नहीं तो यह वेब पेज के बजाय इंस्टॉल हो जाता है.
यह सुविधा, इन सामान्य स्थितियों में काफ़ी मददगार साबित हो सकती है:
ऐसा उपयोगकर्ता जो फ़िलहाल लॉग इन नहीं है, शायद ऐसे कॉन्टेंट को ऐक्सेस करने की कोशिश कर रहा हो जो उपयोगकर्ता को साइन इन करना ज़रूरी है. हालांकि, हो सकता है कि उपयोगकर्ता ने अपना पासवर्ड भूल दिया हो और इसलिए, पासवर्ड रीसेट करने की प्रोसेस शुरू की हो. आखिर में फ़्लो के दौरान, उपयोगकर्ता ऐप्लिकेशन के उस सेक्शन पर वापस जाने की उम्मीद करता है जो वे को ऐक्सेस करने की कोशिश कर रहा है.
कोई ऐप्लिकेशन, सिर्फ़ पुष्टि किए गए खातों का ऐक्सेस दे सकता है. उदाहरण के लिए, किसी न्यूज़लेटर ऐप्लिकेशन में सदस्यता लेने से पहले, उपयोगकर्ता को अपने ईमेल पते की पुष्टि करनी पड़ सकती है. उपयोगकर्ता को ईमेल पते की पुष्टि करने के लिए कहा जाएगा. इसके बाद, उसे सदस्यता की प्रक्रिया पूरी करने के लिए ऐप्लिकेशन पर वापस भेजा जाएगा.
आम तौर पर, जब कोई उपयोगकर्ता चालू पासवर्ड रीसेट या ईमेल पुष्टि फ़्लो शुरू करता है ऐसा Apple ऐप्लिकेशन जो ऐप्लिकेशन में फ़्लो पूरा करने की उम्मीद करता हो; यह मुमकिन है कि जारी रखें यूआरएल के ज़रिए पास की स्थिति की वजह से ऐसा हो सकता है.
'जारी रखें' यूआरएल की मदद से स्टेटस पास करने की सुविधा, Firebase Auth की एक बेहतरीन सुविधा है. इससे उपयोगकर्ता अनुभव को बेहतर बनाया जा सकता है.
ईमेल कार्रवाइयों में स्टेटस/जारी रखने का यूआरएल पास करना
'जारी रखें' यूआरएल को सुरक्षित तरीके से पास करने के लिए, यूआरएल के डोमेन को Firebase कंसोल में श्वेत सूची में शामिल करना होगा. इसके लिए, पुष्टि सेक्शन में जाएं. अगर यह डोमेन पहले से साइन इन करने के तरीके टैब में मौजूद अनुमति वाले डोमेन की सूची में नहीं है, तो इसे जोड़ें.
पासवर्ड फिर से सेट करने का ईमेल या पुष्टि करने वाला ईमेल भेजते समय, FIRActionCodeSettings
का एक इंस्टेंस देना ज़रूरी है. यह इंटरफ़ेस
ये पैरामीटर:
Swift
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
URL |
स्ट्रिंग | यह लिंक (स्टेटस/जारी रखें यूआरएल) सेट करता है, जिसका अलग-अलग संदर्भों में अलग-अलग मतलब होता है:
|
iOSBundleID |
स्ट्रिंग | बंडल आईडी सेट करता है. ऐसा करने पर, लिंक को Apple के किसी ऐप्लिकेशन में खोलने की कोशिश की जाएगी. हालांकि, ऐसा तब ही होगा, जब वह ऐप्लिकेशन आपके डिवाइस पर इंस्टॉल हो. ऐप्लिकेशन, Console में रजिस्टर होना चाहिए. अगर नहीं बंडल आईडी दिया गया है, इस फ़ील्ड का मान इसके बंडल आईडी पर सेट किया गया है ऐप्लिकेशन का मुख्य बंडल. |
androidPackageName |
स्ट्रिंग | Android पैकेज का नाम सेट करता है. इससे लिंक को किसी Android ऐप्लिकेशन को इंस्टॉल करें. |
androidInstallIfNotAvailable |
बूल | इससे पता चलता है कि अगर डिवाइस पर Android ऐप्लिकेशन काम करता है, तो उसे इंस्टॉल करना है या नहीं साथ ही, यह ऐप्लिकेशन पहले से इंस्टॉल न हो. अगर इस फ़ील्ड को बिना packageName के दिया जाता है, तो गड़बड़ी का एक मैसेज दिखता है. इसमें बताया जाता है कि इस फ़ील्ड के साथ packageName दिया जाना चाहिए. |
androidMinimumVersion |
स्ट्रिंग | ऐप्लिकेशन का वह कम से कम वर्शन जो इस फ़्लो में काम करता हो. अगर आपने minVersion बताया गया है और ऐप्लिकेशन का पुराना वर्शन इंस्टॉल किया गया है, ऐप्लिकेशन को अपग्रेड करने के लिए, उपयोगकर्ता को Play Store पर ले जाया जाता है. Android ऐप्लिकेशन कंसोल में रजिस्टर होना चाहिए. |
handleCodeInApp |
बूल | ईमेल कार्रवाई के लिंक को मोबाइल ऐप्लिकेशन या वेब में खोला जाएगा या नहीं लिंक को हटाएं. डिफ़ॉल्ट रूप से, यह वैल्यू 'गलत' पर सेट होती है. 'सही है' पर सेट होने पर, ऐक्शन कोड लिंक को यूनिवर्सल लिंक या Android ऐप्लिकेशन लिंक के तौर पर भेजा जाएगा. साथ ही, अगर ऐप्लिकेशन इंस्टॉल है, तो वह लिंक को खोल देगा. गलत केस में, कोड को पहले वेब विजेट और फिर जारी रखने पर, ऐप्लिकेशन पर रीडायरेक्ट किया जाएगा इंस्टॉल किया गया. |
dynamicLinkDomain |
स्ट्रिंग | मौजूदा लिंक के लिए इस्तेमाल किए जाने वाले डाइनैमिक लिंक डोमेन (या सबडोमेन) को सेट करता है. ऐसा तब किया जाता है, जब लिंक को Firebase डाइनैमिक लिंक का इस्तेमाल करके खोला जाना हो. हर प्रोजेक्ट के लिए, एक से ज़्यादा डाइनैमिक लिंक डोमेन कॉन्फ़िगर किए जा सकते हैं. इसलिए, इस फ़ील्ड की मदद से, किसी एक को साफ़ तौर पर चुना जा सकता है. अगर कोई जानकारी नहीं दी गई है, तो पहला डोमेन डिफ़ॉल्ट रूप से इस्तेमाल किया जाता है. |
Objective-C
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
URL |
NSString | लिंक (स्टेटस/जारी रखें यूआरएल) सेट करता है, जिसका अलग-अलग संदर्भों में अलग-अलग मतलब होता है:
|
iOSBundleID |
एनएसस्ट्रिंग | बंडल आईडी सेट करता है. ऐसा करने से, Apple ऐप्लिकेशन में लिंक खुल जाएगा, तो तो यह इंस्टॉल हो जाता है. ऐप्लिकेशन को Console में रजिस्टर करना होगा. |
androidPackageName |
NSString | Android पैकेज का नाम सेट करता है. इससे, लिंक को किसी Android ऐप्लिकेशन में खोलने की कोशिश की जाएगी. हालांकि, ऐसा तब ही होगा, जब वह ऐप्लिकेशन आपके डिवाइस में इंस्टॉल हो. |
androidInstallIfNotAvailable |
BOOL | से यह तय होता है कि अगर डिवाइस पर Android ऐप्लिकेशन काम करता है और वह पहले से इंस्टॉल नहीं है, तो उसे इंस्टॉल करना है या नहीं. अगर इस फ़ील्ड को PackageName, एक गड़बड़ी दिखाई जाती है जो यह बताती है कि PackageName इस फ़ील्ड के साथ दिया गया होना चाहिए. |
androidMinimumVersion |
एनएसस्ट्रिंग | ऐप्लिकेशन का वह वर्शन जो इस फ़्लो में काम करता है. अगर minimumVersion की वैल्यू दी गई है और ऐप्लिकेशन का पुराना वर्शन इंस्टॉल है, तो उपयोगकर्ता को ऐप्लिकेशन को अपग्रेड करने के लिए Play Store पर ले जाया जाता है. इसके लिए, Android ऐप्लिकेशन को Console में रजिस्टर करना ज़रूरी है. |
handleCodeInApp |
BOOL | ईमेल ऐक्शन लिंक को मोबाइल ऐप्लिकेशन या वेब लिंक में से पहले किसमें खोला जाएगा. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होती है. 'सही है' पर सेट होने पर, ऐक्शन कोड लिंक को यूनिवर्सल लिंक या Android ऐप्लिकेशन लिंक के तौर पर भेजा जाएगा. साथ ही, अगर ऐप्लिकेशन इंस्टॉल है, तो वह लिंक को खोल देगा. अगर कोड गलत है, तो वह सबसे पहले वेब विजेट पर भेजा जाएगा. इसके बाद, 'जारी रखें' पर क्लिक करने पर, उपयोगकर्ता को ऐप्लिकेशन पर रीडायरेक्ट कर दिया जाएगा. हालांकि, इसके लिए ज़रूरी है कि ऐप्लिकेशन पहले से इंस्टॉल हो. |
dynamicLinkDomain |
एनएसस्ट्रिंग | यह मौजूदा लिंक के साथ इस्तेमाल करने के लिए, डाइनैमिक लिंक डोमेन (या सबडोमेन) को सेट करता है अगर इसे Firebase डाइनैमिक लिंक का इस्तेमाल करके खोला जाए. हर प्रोजेक्ट के लिए, एक से ज़्यादा डाइनैमिक लिंक डोमेन कॉन्फ़िगर किए जा सकते हैं. इसलिए, इस फ़ील्ड की मदद से, किसी एक को साफ़ तौर पर चुना जा सकता है. अगर कोई जानकारी नहीं दी गई है, तो पहला डोमेन डिफ़ॉल्ट रूप से इस्तेमाल किया जाता है. |
नीचे दिए गए उदाहरण में, ईमेल पते की पुष्टि करने वाले लिंक को भेजने का तरीका बताया गया है
आपके URL कस्टम पैरामीटर का उपयोग करके पहले से मौजूद
डाइनैमिक लिंक डोमेन 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 कंसोल में, Dynamic Links सेक्शन खोलें.
-
अगर आपने अब तक Dynamic Links की शर्तें स्वीकार नहीं की हैं और Dynamic Links का डोमेन नहीं बनाया है, तो अब ऐसा करें.
अगर आपने पहले से ही कोई Dynamic Links डोमेन बनाया हुआ है, तो उसका ध्यान रखें. Dynamic Links डोमेन आम तौर पर नीचे दिया गया उदाहरण जैसा दिखता है:
example.page.link
आपको इस वैल्यू की ज़रूरत तब होगी, जब Apple या Android ऐप्लिकेशन को आने वाले लिंक को इंटरसेप्ट करें.
Android ऐप्लिकेशन कॉन्फ़िगर करना:
- अगर आप अपने Android ऐप्लिकेशन के इन लिंक को मैनेज करना चाहते हैं, तो Firebase कंसोल में, Android पैकेज का नाम डालना ज़रूरी है प्रोजेक्ट सेटिंग. इसके अलावा, ऐप्लिकेशन के SHA-1 और SHA-256 सर्टिफ़िकेट देना ज़रूरी है.
- आपको डीप लिंक के लिए इंटेंट फ़िल्टर को भी कॉन्फ़िगर करना होगा आपकी AndroidManifest.xml फ़ाइल में है.
- इस बारे में ज़्यादा जानने के लिए, Android डाइनैमिक लिंक के निर्देश पाना लेख पढ़ें.
Apple के ऐप्लिकेशन कॉन्फ़िगर करना:
- अगर आपको अपने ऐप्लिकेशन से इन लिंक को मैनेज करना है, तो Firebase Console के प्रोजेक्ट सेटिंग में बंडल आईडी की जानकारी देनी होगी. साथ ही, App Store का आईडी और Apple Developer, टीम आईडी को भी बताना ज़रूरी है.
- आपको अपने ऐप्लिकेशन की क्षमताओं में, एफ़डीएल यूनिवर्सल लिंक डोमेन को असोसिएटेड डोमेन के तौर पर भी कॉन्फ़िगर करना होगा.
- अगर आपको अपने ऐप्लिकेशन को iOS के 8 और उससे पहले के वर्शन पर उपलब्ध कराना है, तो आपको आने वाले यूआरएल के लिए, अपने बंडल आईडी को कस्टम स्कीम के तौर पर सेट करना होगा.
- इस बारे में ज़्यादा जानकारी के लिए, इसे देखें Apple प्लैटफ़ॉर्म के डाइनैमिक लिंक से जुड़े निर्देश पाना.
वेब ऐप्लिकेशन में ईमेल से जुड़ी कार्रवाइयां मैनेज करना
आपके पास यह तय करने का विकल्प होता है कि आपको ऐक्शन कोड लिंक को पहले किसी वेब ऐप्लिकेशन से मैनेज करना है या नहीं. अगर आपको ऐसा करना है, तो लिंक मैनेज होने के बाद, उपयोगकर्ता को किसी दूसरे वेब पेज या मोबाइल ऐप्लिकेशन पर रीडायरेक्ट किया जा सकता है. हालांकि, इसके लिए ज़रूरी है कि मोबाइल ऐप्लिकेशन उपलब्ध हो.
ऐसा करने के लिए, FIRActionCodeSettings
(Obj-C) या ActionCodeSettings
(Swift) ऑब्जेक्ट में handleCodeInApp
को false
पर सेट करें. बंडल आईडी या Android पैकेज का नाम देना ज़रूरी नहीं है. हालांकि, इन्हें देने पर उपयोगकर्ता को ईमेल ऐक्शन कोड पूरा होने पर, बताए गए ऐप्लिकेशन पर रीडायरेक्ट किया जा सकेगा.
यहां इस्तेमाल किया गया वेब यूआरएल, ईमेल ऐक्शन टेंप्लेट सेक्शन में कॉन्फ़िगर किया गया यूआरएल होता है. सभी प्रोजेक्ट के लिए डिफ़ॉल्ट तौर पर सेट किया जाता है. इससे संदर्भ लें ईमेल हैंडलर को पसंद के मुताबिक बनाना, ताकि आप इनके बारे में ज़्यादा जान सकें ईमेल कार्रवाई हैंडलर को पसंद के मुताबिक कैसे बनाया जाए.
इस मामले में, continueURL
क्वेरी पैरामीटर में मौजूद लिंक, एक एफ़डीएल लिंक होगा. इसका पेलोड, ActionCodeSettings
ऑब्जेक्ट में बताया गया URL
होगा. आपके पास अपने ऐप्लिकेशन से आने वाले लिंक को बिना किसी अतिरिक्त डिपेंडेंसी के इंटरसेप्ट और मैनेज करने का विकल्प है. हालांकि, हमारा सुझाव है कि आप डीप लिंक को पार्स करने के लिए, FDL क्लाइंट लाइब्रेरी का इस्तेमाल करें.
ईमेल की पुष्टि जैसी ईमेल कार्रवाइयों को मैनेज करते समय, oobCode
क्वेरी पैरामीटर के ऐक्शन कोड को डीप लिंक से पार्स करना ज़रूरी है. इसके बाद, बदलाव लागू होने के लिए, applyActionCode
के ज़रिए इसे लागू करना होगा. इसका मतलब है कि ईमेल की पुष्टि की जानी चाहिए.
मोबाइल ऐप्लिकेशन में ईमेल से जुड़ी कार्रवाइयों को मैनेज करना
आप यह तय कर सकते हैं कि आप अपने
मोबाइल ऐप्लिकेशन को प्राथमिकता दें, बशर्ते वह इंस्टॉल हो. Android ऐप्लिकेशन से,
आप androidInstallIfNotAvailable
के ज़रिए यह भी बता सकते हैं कि
ऐप्लिकेशन को इंस्टॉल करना है, अगर डिवाइस पर यह सुविधा काम करती है और पहले से मौजूद नहीं है
इंस्टॉल किया गया.
अगर लिंक पर किसी ऐसे डिवाइस से क्लिक किया गया है जो मोबाइल का समर्थन नहीं करता
तो यह किसी वेब पेज से खोला जाता है.
ऐसा करने के लिए, FIRActionCodeSettings
(Obj-C) या ActionCodeSettings
(Swift) ऑब्जेक्ट में handleCodeInApp
को true
पर सेट करें. कॉन्टेंट बनाने
मोबाइल ऐप्लिकेशन का Android पैकेज नाम या बंडल आईडी भी यह होना चाहिए
बताया गया है.अगर कोई मोबाइल ऐप्लिकेशन उपलब्ध नहीं है, तो यहां इस्तेमाल किया जाने वाला फ़ॉलबैक वेब यूआरएल है
वह कॉन्फ़िगरेशन होता है जिसे ईमेल के ऐक्शन टेंप्लेट सेक्शन में कॉन्फ़िगर किया गया है. सभी प्रोजेक्ट के लिए, डिफ़ॉल्ट तौर पर एक डोमेन उपलब्ध होता है. इससे संदर्भ लें
ईमेल हैंडलर को पसंद के मुताबिक बनाना, ताकि आप इनके बारे में ज़्यादा जान सकें
ईमेल कार्रवाई हैंडलर को पसंद के मुताबिक कैसे बनाया जाए.
इस मामले में, उपयोगकर्ता को भेजा गया मोबाइल ऐप्लिकेशन लिंक, एक एफ़डीएल लिंक होगा. इसका पेलोड, ऐक्शन कोड यूआरएल होगा, जिसे Console में क्वेरी पैरामीटर oobCode
, mode
, apiKey
, और continueUrl
के साथ कॉन्फ़िगर किया गया है. बाद वाला URL
, FIRActionCodeSettings
(Obj-C) या ActionCodeSettings
(Swift) ऑब्जेक्ट में बताए गए मूल URL
होगा. हालाँकि, आपके पास इन्हें इंटरसेप्ट और हैंडल करने का विकल्प है
हमारा सुझाव है कि आप अपने ऐप्लिकेशन से, बिना किसी अतिरिक्त डिपेंडेंसी के आने वाले लिंक का इस्तेमाल करें.
डीप लिंक को पार्स करने के लिए, FDL क्लाइंट लाइब्रेरी का इस्तेमाल करें. ऐक्शन कोड को सीधे मोबाइल ऐप्लिकेशन से लागू किया जा सकता है. ठीक उसी तरह जैसे ईमेल हैंडलर को पसंद के मुताबिक बनाने वाले सेक्शन में बताए गए वेब फ़्लो से किया जाता है.
ईमेल की पुष्टि जैसी ईमेल कार्रवाइयों को मैनेज करते समय, oobCode
क्वेरी पैरामीटर के ऐक्शन कोड को डीप लिंक से पार्स करना ज़रूरी है. इसके बाद, बदलाव लागू होने के लिए, applyActionCode
के ज़रिए इसे लागू करना होगा. इसका मतलब है कि ईमेल की पुष्टि की जानी चाहिए.