Google 致力于为黑人社区推动种族平等。查看具体举措

ईमेल क्रियाओं में राज्य पास करना

पासवर्ड रीसेट करने या उपयोगकर्ता के ईमेल को सत्यापित करने के लिए ईमेल क्रियाएँ भेजते समय आप एक जारी URL के माध्यम से राज्य पास कर सकते हैं। यह उपयोगकर्ता को कार्रवाई पूरी होने के बाद ऐप पर वापस जाने की क्षमता प्रदान करता है। इसके अलावा, आप यह निर्दिष्ट कर सकते हैं कि वेब पेज के बजाय ईमेल एक्शन लिंक को सीधे मोबाइल एप्लिकेशन से इंस्टॉल किया जाए या नहीं।

यह निम्नलिखित सामान्य परिदृश्यों में अत्यंत उपयोगी हो सकता है:

  • एक उपयोगकर्ता, जो वर्तमान में लॉग इन नहीं है, उस सामग्री तक पहुँचने का प्रयास कर सकता है जिसके लिए उपयोगकर्ता को साइन इन करने की आवश्यकता होती है। हालाँकि, उपयोगकर्ता अपना पासवर्ड भूल गया होगा और इसलिए रीसेट पासवर्ड प्रवाह को ट्रिगर कर सकता है। प्रवाह के अंत में, उपयोगकर्ता ऐप के उस अनुभाग में वापस जाने की अपेक्षा करता है जिसे वे एक्सेस करने का प्रयास कर रहे थे।

  • एक एप्लिकेशन केवल सत्यापित खातों तक पहुंच प्रदान कर सकता है। उदाहरण के लिए, एक न्यूज़लेटर ऐप को सदस्यता लेने से पहले उपयोगकर्ता को अपने ईमेल को सत्यापित करने की आवश्यकता हो सकती है। उपयोगकर्ता ईमेल सत्यापन प्रवाह से गुजरेगा और अपनी सदस्यता को पूरा करने के लिए ऐप पर वापस आने की उम्मीद करेगा।

  • सामान्य तौर पर, जब कोई उपयोगकर्ता किसी ऐप्पल ऐप पर पासवर्ड रीसेट या ईमेल सत्यापन प्रवाह शुरू करता है तो वे ऐप के भीतर प्रवाह को पूरा करने की अपेक्षा करते हैं; जारी यूआरएल के माध्यम से राज्य को पारित करने की क्षमता इसे संभव बनाती है।

एक जारी यूआरएल के माध्यम से राज्य को पारित करने की क्षमता एक शक्तिशाली विशेषता है जो फायरबेस ऑथ प्रदान करती है और जो उपयोगकर्ता अनुभव को महत्वपूर्ण रूप से बढ़ा सकती है।

ईमेल कार्रवाइयों में राज्य पास करना/यूआरएल जारी रखना

जारी यूआरएल को सुरक्षित रूप से पास करने के लिए, यूआरएल के डोमेन को फायरबेस कंसोल में श्वेतसूची में रखना होगा। यह इस डोमेन को साइन-इन विधि टैब के तहत अधिकृत डोमेन की सूची में जोड़कर प्रमाणीकरण अनुभाग में किया जाता है यदि यह पहले से नहीं है।

पासवर्ड रीसेट ईमेल या सत्यापन ईमेल भेजते समय FIRActionCodeSettings इंस्टेंस प्रदान करने की आवश्यकता होती है। यह इंटरफ़ेस निम्नलिखित पैरामीटर लेता है:

तीव्र

पैरामीटर प्रकार विवरण
URL डोरी

लिंक सेट करता है (राज्य/जारी यूआरएल) जिसका अलग-अलग संदर्भों में अलग-अलग अर्थ हैं:

  • जब लिंक को वेब एक्शन विजेट्स में हैंडल किया जाता है, तो यह continueUrl क्वेरी पैरामीटर में डीप लिंक होता है।
  • जब लिंक को सीधे ऐप में हैंडल किया जाता है, तो यह डायनामिक लिंक के डीप लिंक में continueUrl यूआरएल क्वेरी पैरामीटर है।
iOSBundleID डोरी बंडल आईडी सेट करता है। यदि यह स्थापित है तो यह ऐप्पल ऐप में लिंक को खोलने का प्रयास करेगा। एप्लिकेशन को कंसोल में पंजीकृत होना चाहिए। यदि कोई बंडल आईडी प्रदान नहीं की जाती है, तो इस फ़ील्ड का मान ऐप के मुख्य बंडल के बंडल आईडी पर सेट हो जाता है।
androidPackageName डोरी Android पैकेज का नाम सेट करता है। यह इंस्टॉल होने पर एंड्रॉइड ऐप में लिंक को खोलने का प्रयास करेगा।
androidInstallIfNotAvailable बूल निर्दिष्ट करता है कि यदि डिवाइस इसका समर्थन करता है और ऐप पहले से इंस्टॉल नहीं है तो एंड्रॉइड ऐप इंस्टॉल करना है या नहीं। यदि यह फ़ील्ड पैकेजनाम के बिना प्रदान की जाती है, तो यह समझाते हुए एक त्रुटि उत्पन्न होती है कि पैकेजनाम को इस फ़ील्ड के संयोजन में प्रदान किया जाना चाहिए।
androidMinimumVersion डोरी ऐप का न्यूनतम संस्करण जो इस प्रवाह में समर्थित है। यदि न्यूनतम संस्करण निर्दिष्ट है, और ऐप का पुराना संस्करण स्थापित है, तो उपयोगकर्ता को ऐप को अपग्रेड करने के लिए Play Store पर ले जाया जाता है। Android ऐप को कंसोल में पंजीकृत होना चाहिए।
handleCodeInApp बूल ईमेल एक्शन लिंक को मोबाइल ऐप में खोला जाएगा या पहले वेब लिंक में। डिफॉल्ट गलत है। जब सही पर सेट किया जाता है, तो एक्शन कोड लिंक को यूनिवर्सल लिंक या एंड्रॉइड ऐप लिंक के रूप में भेजा जाएगा और इंस्टॉल होने पर ऐप द्वारा खोला जाएगा। झूठे मामले में, कोड पहले वेब विजेट पर भेजा जाएगा और फिर जारी रखने पर इंस्टॉल होने पर ऐप पर रीडायरेक्ट कर दिया जाएगा।
dynamicLinkDomain डोरी डायनामिक लिंक डोमेन (या सबडोमेन) को वर्तमान लिंक के लिए उपयोग करने के लिए सेट करता है यदि इसे फायरबेस डायनेमिक लिंक का उपयोग करके खोला जाना है। चूंकि प्रति प्रोजेक्ट कई डायनामिक लिंक डोमेन कॉन्फ़िगर किए जा सकते हैं, यह फ़ील्ड स्पष्ट रूप से किसी एक को चुनने की क्षमता प्रदान करती है। यदि कोई नहीं प्रदान किया जाता है, तो पहला डोमेन डिफ़ॉल्ट रूप से उपयोग किया जाता है।

उद्देश्य सी

पैरामीटर प्रकार विवरण
URL एनएसएसटींग

लिंक सेट करता है (राज्य/जारी यूआरएल) जिसका अलग-अलग संदर्भों में अलग-अलग अर्थ हैं:

  • जब लिंक को वेब एक्शन विजेट्स में हैंडल किया जाता है, तो यह continueUrl क्वेरी पैरामीटर में डीप लिंक होता है।
  • जब लिंक को सीधे ऐप में हैंडल किया जाता है, तो यह डायनामिक लिंक के डीप लिंक में continueUrl यूआरएल क्वेरी पैरामीटर है।
iOSBundleID एनएसएसटींग बंडल आईडी सेट करता है। यदि यह स्थापित है तो यह ऐप्पल ऐप में लिंक को खोलने का प्रयास करेगा। एप्लिकेशन को कंसोल में पंजीकृत होना चाहिए।
androidPackageName एनएसएसटींग Android पैकेज का नाम सेट करता है। यह इंस्टॉल होने पर एंड्रॉइड ऐप में लिंक को खोलने का प्रयास करेगा।
androidInstallIfNotAvailable बूल निर्दिष्ट करता है कि यदि डिवाइस इसका समर्थन करता है और ऐप पहले से इंस्टॉल नहीं है तो एंड्रॉइड ऐप इंस्टॉल करना है या नहीं। यदि यह फ़ील्ड पैकेजनाम के बिना प्रदान की जाती है, तो यह समझाते हुए एक त्रुटि उत्पन्न होती है कि पैकेजनाम को इस फ़ील्ड के संयोजन में प्रदान किया जाना चाहिए।
androidMinimumVersion एनएसएसटींग ऐप का न्यूनतम संस्करण जो इस प्रवाह में समर्थित है। यदि न्यूनतम संस्करण निर्दिष्ट है, और ऐप का पुराना संस्करण स्थापित है, तो उपयोगकर्ता को ऐप को अपग्रेड करने के लिए Play Store पर ले जाया जाता है। Android ऐप को कंसोल में पंजीकृत होना चाहिए।
handleCodeInApp बूल ईमेल एक्शन लिंक को मोबाइल ऐप में खोला जाएगा या पहले वेब लिंक में। डिफॉल्ट गलत है। जब सही पर सेट किया जाता है, तो एक्शन कोड लिंक को यूनिवर्सल लिंक या एंड्रॉइड ऐप लिंक के रूप में भेजा जाएगा और इंस्टॉल होने पर ऐप द्वारा खोला जाएगा। झूठे मामले में, कोड पहले वेब विजेट पर भेजा जाएगा और फिर जारी रखने पर इंस्टॉल होने पर ऐप पर रीडायरेक्ट कर दिया जाएगा।
dynamicLinkDomain एनएसएसटींग डायनामिक लिंक डोमेन (या सबडोमेन) को वर्तमान लिंक के लिए उपयोग करने के लिए सेट करता है यदि इसे फायरबेस डायनेमिक लिंक का उपयोग करके खोला जाना है। चूंकि प्रति प्रोजेक्ट कई डायनामिक लिंक डोमेन कॉन्फ़िगर किए जा सकते हैं, यह फ़ील्ड स्पष्ट रूप से किसी एक को चुनने की क्षमता प्रदान करती है। यदि कोई नहीं प्रदान किया जाता है, तो पहला डोमेन डिफ़ॉल्ट रूप से उपयोग किया जाता है।

नीचे दिया गया उदाहरण बताता है कि ईमेल सत्यापन लिंक कैसे भेजा जाए, जो कस्टम डायनेमिक लिंक डोमेन example.page.link (iOS ऐप com.example.ios या Android ऐप com.example.android जहां ऐप इंस्टॉल हो जाएगा यदि पहले से इंस्टॉल नहीं है और न्यूनतम संस्करण 12 है)। डीप लिंक में URL पेलोड जारी रहेगा https://www.example.com/?email=user@example.com

तीव्र


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,
                                         minumumVersion:"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.
})

उद्देश्य सी

 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.
 }];

एक मोबाइल एप्लिकेशन में खोले जाने के लिए एक लिंक भेजते समय फायरबेस ऑथ फायरबेस डायनेमिक लिंक का उपयोग करता है। इस सुविधा का उपयोग करने के लिए, डायनेमिक लिंक्स को फायरबेस कंसोल में कॉन्फ़िगर करने की आवश्यकता है।

  1. फायरबेस डायनेमिक लिंक सक्षम करें:

    1. फायरबेस कंसोल में, डायनामिक लिंक अनुभाग खोलें।
    2. यदि आपने अभी तक डायनामिक लिंक शर्तों को स्वीकार नहीं किया है और एक डायनामिक लिंक डोमेन बनाया है, तो अभी करें।

      यदि आपने पहले ही एक डायनामिक लिंक डोमेन बना लिया है, तो उस पर ध्यान दें। एक डायनामिक लिंक डोमेन आमतौर पर निम्न उदाहरण जैसा दिखता है:

      example.page.link

      जब आप आने वाले लिंक को इंटरसेप्ट करने के लिए अपने ऐप्पल या एंड्रॉइड ऐप को कॉन्फ़िगर करते हैं तो आपको इस मूल्य की आवश्यकता होगी।

  2. एंड्रॉइड एप्लिकेशन को कॉन्फ़िगर करना:

    1. यदि आप अपने Android एप्लिकेशन से इन लिंक को प्रबंधित करने की योजना बना रहे हैं, तो Android पैकेज नाम को Firebase कंसोल प्रोजेक्ट सेटिंग में निर्दिष्ट करने की आवश्यकता है। इसके अलावा, आवेदन प्रमाण पत्र के SHA-1 और SHA-256 प्रदान करने की आवश्यकता है।
    2. आपको अपनी AndroidManifest.xml फ़ाइल में डीप लिंक के लिए इंटेंट फ़िल्टर को भी कॉन्फ़िगर करना होगा।
    3. इस पर अधिक जानकारी के लिए, Android डायनामिक लिंक प्राप्त करना निर्देश देखें।
  3. Apple अनुप्रयोगों को कॉन्फ़िगर करना:

    1. अगर आप अपने आवेदन से इन लिंक को संभालने की योजना बना रहे हैं, तो बंडल आईडी को Firebase कंसोल प्रोजेक्ट सेटिंग में निर्दिष्ट करना होगा। इसके अलावा, ऐप स्टोर आईडी और ऐप्पल डेवलपर टीम आईडी को भी निर्दिष्ट करने की आवश्यकता है।
    2. आपको अपनी एप्लिकेशन क्षमताओं में FDL युनिवर्सल लिंक डोमेन को संबद्ध डोमेन के रूप में कॉन्फ़िगर करने की भी आवश्यकता होगी।
    3. यदि आप अपने एप्लिकेशन को iOS संस्करण 8 और इसके तहत वितरित करने की योजना बना रहे हैं, तो आपको आने वाले URL के लिए अपनी बंडल आईडी को एक कस्टम योजना के रूप में सेट करने की आवश्यकता होगी।
    4. इस पर अधिक जानकारी के लिए, Apple प्लेटफॉर्म प्राप्त करना डायनेमिक लिंक निर्देश देखें।

वेब एप्लिकेशन में ईमेल क्रियाओं को संभालना

आप निर्दिष्ट कर सकते हैं कि क्या आप पहले किसी वेब एप्लिकेशन से एक्शन कोड लिंक को संभालना चाहते हैं और फिर सफल समापन के बाद किसी अन्य वेब पेज या मोबाइल एप्लिकेशन पर रीडायरेक्ट करना चाहते हैं, बशर्ते मोबाइल एप्लिकेशन उपलब्ध हो। यह FIRActionCodeSettings (Obj-C) या ActionCodeSettings (स्विफ्ट) ऑब्जेक्ट में handleCodeInApp को false पर सेट करके किया जाता है। जबकि एक बंडल आईडी या एंड्रॉइड पैकेज नाम की आवश्यकता नहीं है, उन्हें प्रदान करने से उपयोगकर्ता को ईमेल एक्शन कोड पूरा होने पर निर्दिष्ट ऐप पर वापस रीडायरेक्ट करने की अनुमति मिल जाएगी।

यहां इस्तेमाल किया गया वेब यूआरएल ईमेल एक्शन टेम्प्लेट सेक्शन में कॉन्फ़िगर किया गया है। सभी परियोजनाओं के लिए एक डिफ़ॉल्ट प्रावधान किया गया है। ईमेल एक्शन हैंडलर को कस्टमाइज़ करने के तरीके के बारे में अधिक जानने के लिए ईमेल हैंडलर को कस्टमाइज़ करना देखें।

इस मामले में, ContinueURL क्वेरी पैरामीटर continueURL भीतर लिंक एक FDL लिंक होगा जिसका पेलोड ActionCodeSettings ऑब्जेक्ट में निर्दिष्ट URL है। जबकि आप बिना किसी अतिरिक्त निर्भरता के अपने ऐप से आने वाले लिंक को इंटरसेप्ट और हैंडल कर सकते हैं, हम आपके लिए डीप लिंक को पार्स करने के लिए FDL क्लाइंट लाइब्रेरी का उपयोग करने की सलाह देते हैं।

ईमेल सत्यापन जैसे ईमेल कार्यों को संभालते समय, oobCode क्वेरी पैरामीटर से क्रिया कोड को डीप लिंक से पार्स करने की आवश्यकता होती है और फिर परिवर्तन को प्रभावी करने के लिए applyActionCode के माध्यम से लागू किया जाता है, अर्थात सत्यापित होने के लिए ईमेल।

मोबाइल एप्लिकेशन में ईमेल क्रियाओं को संभालना

आप निर्दिष्ट कर सकते हैं कि क्या आप पहले अपने मोबाइल एप्लिकेशन के भीतर एक्शन कोड लिंक को हैंडल करना चाहते हैं, बशर्ते वह इंस्टॉल हो। एंड्रॉइड एप्लिकेशन के साथ, आपके पास androidInstallIfNotAvailable के माध्यम से यह निर्दिष्ट करने की क्षमता भी है कि यदि डिवाइस इसका समर्थन करता है और यह पहले से इंस्टॉल नहीं है तो ऐप इंस्टॉल किया जाना है। यदि लिंक को किसी ऐसे उपकरण से क्लिक किया जाता है जो मोबाइल एप्लिकेशन का समर्थन नहीं करता है, तो इसे इसके बजाय एक वेब पेज से खोला जाता है। यह FIRActionCodeSettings (Obj-C) या ActionCodeSettings (स्विफ्ट) ऑब्जेक्ट में handleCodeInApp को true पर सेट करके किया जाता है। मोबाइल एप्लिकेशन के एंड्रॉइड पैकेज नाम या बंडल आईडी को भी निर्दिष्ट करने की आवश्यकता होगी। जब कोई मोबाइल ऐप उपलब्ध नहीं है, तो यहां उपयोग किया जाने वाला फ़ॉलबैक वेब यूआरएल ईमेल एक्शन टेम्प्लेट सेक्शन में कॉन्फ़िगर किया गया है। सभी परियोजनाओं के लिए एक डिफ़ॉल्ट प्रावधान किया गया है। ईमेल एक्शन हैंडलर को कस्टमाइज़ करने के तरीके के बारे में अधिक जानने के लिए ईमेल हैंडलर को कस्टमाइज़ करना देखें।

इस मामले में, उपयोगकर्ता को भेजा गया मोबाइल ऐप लिंक एक FDL लिंक होगा जिसका पेलोड एक्शन कोड URL है, जो कंसोल में कॉन्फ़िगर किया गया है, जिसमें क्वेरी पैरामीटर oobCode , mode , apiKey और continueUrl शामिल हैं। उत्तरार्द्ध FIRActionCodeSettings (Obj-C) या ActionCodeSettings (स्विफ्ट) ऑब्जेक्ट में निर्दिष्ट मूल URL होगा। जबकि आप बिना किसी अतिरिक्त निर्भरता के अपने ऐप से आने वाले लिंक को इंटरसेप्ट और हैंडल कर सकते हैं, हम आपके लिए डीप लिंक को पार्स करने के लिए FDL क्लाइंट लाइब्रेरी का उपयोग करने की सलाह देते हैं। कार्रवाई कोड को सीधे मोबाइल एप्लिकेशन से उसी तरह लागू किया जा सकता है जैसे इसे कस्टमाइज़िंग ईमेल हैंडलर अनुभाग में वर्णित वेब प्रवाह से कैसे नियंत्रित किया जाता है।

ईमेल सत्यापन जैसे ईमेल कार्यों को संभालते समय, oobCode क्वेरी पैरामीटर से क्रिया कोड को डीप लिंक से पार्स करने की आवश्यकता होती है और फिर परिवर्तन को प्रभावी करने के लिए applyActionCode के माध्यम से लागू किया जाता है, अर्थात सत्यापित होने के लिए ईमेल।