पासवर्ड रीसेट करने या उपयोगकर्ता के ईमेल की पुष्टि करने के लिए, ईमेल से जुड़ी कार्रवाइयां भेजते समय, जारी रखने के यूआरएल के ज़रिए स्टेट पास की जा सकती है. इससे उपयोगकर्ता को कार्रवाई पूरी होने के बाद, ऐप्लिकेशन पर वापस जाने की सुविधा मिलती है. इसके अलावा, यह भी तय किया जा सकता है कि जब मोबाइल ऐप्लिकेशन इंस्टॉल हो, तब ईमेल ऐक्शन लिंक को वेब पेज के बजाय सीधे तौर पर मोबाइल ऐप्लिकेशन से हैंडल किया जाए या नहीं.
यह सुविधा, इन सामान्य स्थितियों में बहुत मददगार हो सकती है:
ऐसा हो सकता है कि कोई ऐसा उपयोगकर्ता कॉन्टेंट ऐक्सेस करने की कोशिश कर रहा हो जिसने अभी लॉग इन नहीं किया है. हालांकि, इस कॉन्टेंट को ऐक्सेस करने के लिए, उपयोगकर्ता को लॉग इन करना ज़रूरी है. हालांकि, ऐसा हो सकता है कि उपयोगकर्ता अपना पासवर्ड भूल गया हो. इसलिए, वह पासवर्ड रीसेट करने का अनुरोध कर रहा हो. फ़्लो के आखिर में, उपयोगकर्ता को ऐप्लिकेशन के उस सेक्शन पर वापस जाने की उम्मीद होती है जिसे वह ऐक्सेस करने की कोशिश कर रहा था.
कोई ऐप्लिकेशन, सिर्फ़ उन खातों का ऐक्सेस दे सकता है जिनकी पुष्टि हो चुकी है. उदाहरण के लिए, न्यूज़लेटर ऐप्लिकेशन में सदस्यता लेने से पहले, उपयोगकर्ता को अपने ईमेल पते की पुष्टि करनी पड़ सकती है. उपयोगकर्ता को ईमेल से पुष्टि करने की प्रोसेस पूरी करनी होगी. इसके बाद, उसे सदस्यता लेने की प्रोसेस पूरी करने के लिए ऐप्लिकेशन पर वापस भेज दिया जाएगा.
आम तौर पर, जब कोई उपयोगकर्ता Apple के किसी ऐप्लिकेशन पर पासवर्ड रीसेट करने या ईमेल की पुष्टि करने की प्रोसेस शुरू करता है, तो वह चाहता है कि यह प्रोसेस ऐप्लिकेशन में ही पूरी हो जाए. 'जारी रखें' यूआरएल के ज़रिए स्थिति को पास करने की सुविधा से ऐसा करना मुमकिन हो पाता है.
जारी रखने के यूआरएल के ज़रिए स्थिति को पास करने की सुविधा, Firebase Auth की एक अहम सुविधा है. इससे उपयोगकर्ता अनुभव को बेहतर बनाया जा सकता है.
ईमेल में की जाने वाली कार्रवाइयों में, जारी रखने वाले यूआरएल की स्थिति को पास करना
जारी रखने के यूआरएल को सुरक्षित तरीके से पास करने के लिए, यूआरएल के डोमेन को Firebase कंसोल में श्वेतसूची में शामिल करना होगा. अगर यह डोमेन पहले से मौजूद नहीं है, तो इसे साइन-इन करने का तरीका टैब में जाकर, पुष्टि सेक्शन में जोड़ें. इसके लिए, अनुमति वाले डोमेन की सूची में यह डोमेन जोड़ें.
पासवर्ड रीसेट करने का ईमेल या पुष्टि करने का ईमेल भेजते समय, FIRActionCodeSettings
इंस्टेंस देना ज़रूरी है. यह इंटरफ़ेस, इन पैरामीटर का इस्तेमाल करता है:
Swift
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
URL |
स्ट्रिंग | यह कुकी, लिंक (स्टेट/जारी रखने का यूआरएल) सेट करती है. इसका मतलब अलग-अलग संदर्भों में अलग-अलग होता है:
|
iOSBundleID |
स्ट्रिंग | यह कुकी, iOS बंडल आईडी सेट करती है. इससे Firebase Authentication को यह तय करने में मदद मिलती है कि उसे वेब-ओनली लिंक बनाना चाहिए या मोबाइल लिंक. मोबाइल लिंक को Apple डिवाइस पर खोला जाता है |
androidPackageName |
स्ट्रिंग | यह कुकी, Android ऐप्लिकेशन के पैकेज का नाम सेट करती है. इससे Firebase Authentication को यह तय करने में मदद मिलती है कि उसे सिर्फ़ वेब के लिए लिंक बनाना चाहिए या मोबाइल लिंक बनाना चाहिए. मोबाइल लिंक, Android डिवाइस पर खुलता है |
handleCodeInApp |
बूल | ईमेल ऐक्शन लिंक को पहले मोबाइल ऐप्लिकेशन में खोला जाएगा या वेब लिंक में. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होता है. इस विकल्प को 'सही है' पर सेट करने पर, कार्रवाई के कोड का लिंक, यूनिवर्सल लिंक या Android ऐप्लिकेशन लिंक के तौर पर भेजा जाएगा. साथ ही, अगर ऐप्लिकेशन इंस्टॉल है, तो उसे ऐप्लिकेशन से खोला जाएगा. अगर यह वैल्यू गलत है, तो कोड सबसे पहले वेब विजेट को भेजा जाएगा. इसके बाद, जारी रखने पर ऐप्लिकेशन इंस्टॉल होने पर उसे रीडायरेक्ट कर दिया जाएगा. |
linkDomain |
स्ट्रिंग | किसी प्रोजेक्ट के लिए कस्टम होस्टिंग लिंक डोमेन तय किए जाने पर, यह तय करें कि किसी मोबाइल ऐप्लिकेशन से लिंक खोलने के लिए, किस डोमेन का इस्तेमाल किया जाए. ऐसा न करने पर, डिफ़ॉल्ट डोमेन अपने-आप चुना जाता है. उदाहरण के लिए, PROJECT_ID.firebaseapp.com |
dynamicLinkDomain |
स्ट्रिंग | समर्थन नहीं होना या रुकना. इस पैरामीटर को न डालें. |
Objective-C
पैरामीटर | टाइप | ब्यौरा |
---|---|---|
URL |
NSString | यह कुकी, लिंक (स्टेट/जारी रखने का यूआरएल) सेट करती है. इसका मतलब अलग-अलग संदर्भों में अलग-अलग होता है:
|
iOSBundleID |
NSString | यह कुकी, iOS बंडल आईडी सेट करती है. इससे Firebase Authentication को यह तय करने में मदद मिलती है कि उसे सिर्फ़ वेब लिंक बनाना चाहिए या मोबाइल लिंक. मोबाइल लिंक को Android या Apple डिवाइस पर खोला जाता है |
androidPackageName |
NSString | यह कुकी, Android पैकेज का नाम सेट करती है. इससे Firebase Authentication को यह तय करने में मदद मिलती है कि उसे सिर्फ़ वेब के लिए लिंक बनाना चाहिए या मोबाइल लिंक बनाना चाहिए. मोबाइल लिंक को Android या Apple डिवाइस पर खोला जाता है |
handleCodeInApp |
BOOL | ईमेल ऐक्शन लिंक को पहले मोबाइल ऐप्लिकेशन में खोला जाएगा या वेब लिंक में. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होता है. इस विकल्प को 'सही है' पर सेट करने पर, कार्रवाई के कोड का लिंक, यूनिवर्सल लिंक या Android ऐप्लिकेशन लिंक के तौर पर भेजा जाएगा. साथ ही, अगर ऐप्लिकेशन इंस्टॉल है, तो उसे ऐप्लिकेशन से खोला जाएगा. अगर यह वैल्यू गलत है, तो कोड सबसे पहले वेब विजेट को भेजा जाएगा. इसके बाद, जारी रखने पर ऐप्लिकेशन इंस्टॉल होने पर उसे रीडायरेक्ट कर दिया जाएगा. |
linkDomain |
NSString | किसी प्रोजेक्ट के लिए कस्टम Hosting लिंक डोमेन तय किए जाने पर, यह तय करें कि लिंक को किसी मोबाइल ऐप्लिकेशन से खोलने के लिए, किस डोमेन का इस्तेमाल किया जाए. ऐसा न करने पर, डिफ़ॉल्ट डोमेन अपने-आप चुना जाता है. उदाहरण के लिए, PROJECT_ID.firebaseapp.com |
dynamicLinkDomain |
NSString | समर्थन नहीं होना या रुकना. इस पैरामीटर को न डालें. |
यहां दिए गए उदाहरण में, ईमेल की पुष्टि करने वाले लिंक को भेजने का तरीका बताया गया है. यह लिंक, कस्टम Hosting लिंक डोमेन custom-domain.com
का इस्तेमाल करके, सबसे पहले मोबाइल ऐप्लिकेशन में खुलेगा. डीप लिंक में, जारी रखने के यूआरएल का पेलोड 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") // Specify a custom Hosting link domain to use. The domain must be // configured in Firebase Hosting and owned by the project. actionCodeSettings.linkDomain = "custom-domain.com" 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; // Specify a custom Hosting link domain to use. The domain must be // configured in Firebase Hosting and owned by the project. actionCodeSettings.linkDomain = @"custom-domain.com"; [actionCodeSettings setAndroidPackageName:@"com.example.android"]; [user sendEmailVerificationWithActionCodeSettings:actionCodeSettings completion:^(NSError *_Nullable error) { if (error) { // Error occurred. Inspect error.code and handle error. return; } // Email verification sent. }];
Firebase Hosting लिंक कॉन्फ़िगर करना
Firebase Authentication, मोबाइल ऐप्लिकेशन में खोले जाने वाले लिंक को भेजने के लिए Firebase Hosting का इस्तेमाल करता है. इस सुविधा का इस्तेमाल करने के लिए, Hosting कंसोल में Hosting लिंक कॉन्फ़िगर किए जाने चाहिए.Firebase
Apple के ऐप्लिकेशन कॉन्फ़िगर करना:
- अगर आपको अपने ऐप्लिकेशन से इन लिंक को मैनेज करना है, तो आपको अपने ऐप्लिकेशन की सुविधाओं में Hosting लिंक डोमेन को एक असोसिएटेड डोमेन के तौर पर कॉन्फ़िगर करना होगा.
- इस बारे में ज़्यादा जानने के लिए, iOS होस्टिंग लिंक पाने के निर्देश देखें.
Android ऐप्लिकेशन कॉन्फ़िगर करना:
- अगर आपको अपने Android ऐप्लिकेशन से इन लिंक को मैनेज करना है, तो आपके ऐप्लिकेशन के पैकेज का नाम Firebase कंसोल प्रोजेक्ट की सेटिंग में दिया जाना चाहिए. इसके अलावा, ऐप्लिकेशन के सर्टिफ़िकेट का SHA-1 और SHA-256 भी देना होगा.
- आपको अपनी
AndroidManifest.xml
फ़ाइल में, डीप लिंक के लिए इंटेंट फ़िल्टर भी कॉन्फ़िगर करना होगा. - इस बारे में ज़्यादा जानने के लिए, Android ऐप्लिकेशन होस्ट करने के लिंक पाने से जुड़े निर्देश देखें.
वेब ऐप्लिकेशन में ईमेल से जुड़ी कार्रवाइयों को मैनेज करना
आपके पास यह तय करने का विकल्प होता है कि आपको कार्रवाई के कोड वाले लिंक को पहले वेब ऐप्लिकेशन से हैंडल करना है या नहीं. अगर हैंडल करना है, तो कार्रवाई पूरी होने के बाद, आपको किसी दूसरे वेब पेज या मोबाइल ऐप्लिकेशन पर रीडायरेक्ट करना है या नहीं. हालांकि, ऐसा तब ही किया जा सकता है, जब मोबाइल ऐप्लिकेशन उपलब्ध हो.
इसके लिए, FIRActionCodeSettings
(Obj-C) या ActionCodeSettings
(Swift) ऑब्जेक्ट में handleCodeInApp
को false
पर सेट किया जाता है. बंडल आईडी या Android पैकेज का नाम देना ज़रूरी नहीं है. हालांकि, इन्हें देने से उपयोगकर्ता को ईमेल ऐक्शन कोड पूरा होने पर, बताए गए ऐप्लिकेशन पर वापस रीडायरेक्ट किया जा सकेगा.
यहां इस्तेमाल किया गया वेब यूआरएल, ईमेल ऐक्शन टेंप्लेट सेक्शन में कॉन्फ़िगर किया गया यूआरएल है. सभी प्रोजेक्ट के लिए, डिफ़ॉल्ट रूप से एक उपलब्ध कराया जाता है. ईमेल ऐक्शन हैंडलर को पसंद के मुताबिक बनाने के तरीके के बारे में ज़्यादा जानने के लिए, ईमेल हैंडलर को पसंद के मुताबिक बनाना लेख पढ़ें.
इस मामले में, continueURL
क्वेरी पैरामीटर में मौजूद लिंक, Hosting लिंक होगा. इसका पेलोड, ActionCodeSettings
ऑब्जेक्ट में दिया गया URL
होगा.
ईमेल से जुड़ी कार्रवाइयों, जैसे कि ईमेल की पुष्टि करने के लिए, oobCode
क्वेरी पैरामीटर से ऐक्शन कोड को डीप लिंक से पार्स करना होगा.इसके बाद, बदलाव को लागू करने के लिए, applyActionCode
के ज़रिए इसे लागू करना होगा. इसका मतलब है कि ईमेल की पुष्टि की जानी है.
मोबाइल ऐप्लिकेशन में ईमेल से जुड़ी कार्रवाइयों को मैनेज करना
आपके पास यह तय करने का विकल्प होता है कि अगर आपका मोबाइल ऐप्लिकेशन इंस्टॉल है, तो क्या आपको ऐक्शन कोड लिंक को सबसे पहले अपने मोबाइल ऐप्लिकेशन में हैंडल करना है. अगर लिंक पर क्लिक ऐसे डिवाइस से किया जाता है जिस पर मोबाइल ऐप्लिकेशन काम नहीं करता, तो लिंक को वेब पेज से खोला जाता है. इसके लिए, FIRActionCodeSettings
(Obj-C) या ActionCodeSettings
(Swift) ऑब्जेक्ट में handleCodeInApp
को true
पर सेट किया जाता है. मोबाइल ऐप्लिकेशन के Android पैकेज का नाम या बंडल आईडी भी बताना होगा. जब कोई मोबाइल ऐप्लिकेशन उपलब्ध नहीं होता है, तो यहां इस्तेमाल किया गया फ़ॉलबैक वेब यूआरएल, ईमेल ऐक्शन टेंप्लेट सेक्शन में कॉन्फ़िगर किया गया यूआरएल होता है. सभी प्रोजेक्ट के लिए, डिफ़ॉल्ट रूप से एक उपलब्ध कराया जाता है. ईमेल ऐक्शन हैंडलर को पसंद के मुताबिक बनाने के तरीके के बारे में ज़्यादा जानने के लिए, ईमेल हैंडलर को पसंद के मुताबिक बनाना लेख पढ़ें.
इस मामले में, उपयोगकर्ता को भेजा गया मोबाइल ऐप्लिकेशन लिंक, Hosting लिंक होगा. इसका पेलोड, Console में कॉन्फ़िगर किया गया ऐक्शन कोड यूआरएल होगा. इसमें क्वेरी पैरामीटर oobCode
, mode
, apiKey
, और continueUrl
शामिल होंगे. बाद वाला, FIRActionCodeSettings
(Obj-C) या ActionCodeSettings
(Swift) ऑब्जेक्ट में बताया गया ओरिजनल URL
होगा. कार्रवाई के कोड को सीधे तौर पर मोबाइल ऐप्लिकेशन से लागू किया जा सकता है. यह ठीक उसी तरह से काम करता है जैसे ईमेल हैंडलर को पसंद के मुताबिक बनाना सेक्शन में बताया गया है.
ईमेल से जुड़ी कार्रवाइयों, जैसे कि ईमेल की पुष्टि करने के लिए, oobCode
क्वेरी पैरामीटर से ऐक्शन कोड को डीप लिंक से पार्स करना होगा.इसके बाद, बदलाव को लागू करने के लिए, applyActionCode
के ज़रिए इसे लागू करना होगा. इसका मतलब है कि ईमेल की पुष्टि की जानी है.