Cordava के साथ OAuth प्रोवाइडर का इस्तेमाल करके पुष्टि करें

Firebase JS SDK टूल की मदद से, Firebase उपयोगकर्ताओं को का इस्तेमाल किया जा सकता है. आप एक साथ इंटिग्रेट कर सकते हैं यह कार्रवाई करने के लिए, Firebase SDK टूल का इस्तेमाल किया जा सकता है. में साइन-इन कर सकते हैं या OAuth फ़्लो को मैन्युअल तरीके से चला सकते हैं और नतीजे के तौर पर Firebase को OAuth क्रेडेंशियल भेजा जाएगा.

Cordava के लिए Firebase से पुष्टि करने की सुविधा सेट अप करना

  1. Firebase को अपने JavaScript प्रोजेक्ट में जोड़ें. इसे जोड़ते समय Firebase स्निपेट, authDomain कॉन्फ़िगरेशन वैरिएबल पर ध्यान दें, जो my-app.firebaseapp.com जैसा दिखना चाहिए. अगर किसी कस्टम डोमेन का इस्तेमाल किया जाता है Firebase के प्रावधान क��ए गए firebaseapp.com डोमेन के बजाय, कस्टम इसके बजाय डोमेन का इस्तेमाल किया जाना चाहिए.

  2. Android ऐप्लिकेशन सेट अप करने के लिए, अपने Android ऐप्लिकेशन को Firebase कंसोल में जोड़ें अपने ऐप्लिकेशन के बारे में जानकारी डालें. आपको जनरेट की गई google-services.json के बारे में बताया गया है.

  3. iOS ऐप्लिकेशन सेट अप करने के लिए, iOS ऐप्लिकेशन बनाएं और उसे Firebase कंसोल. बाद में जोड़ते समय, आपको iOS बंडल आईडी की ज़रूरत पड़ेगी कस्टम यूआरएल स्कीम का प्लगिन इंस्टॉल करके.

  4. Firebase डाइनैमिक लिंक चालू करें:

    1. Firebase कंसोल में, डाइनैमिक लिंक सेक्शन खोलें.
    2. अगर आपने अभी तक डाइनैमिक लिंक की शर्तें स्वीकार नहीं की हैं और डाइनैमिक लिंक डोमेन है, तो अभी ऐसा करें.

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

      example.page.link

      आपको इस वैल्यू की ज़रूरत तब होगी, जब Apple या Android ऐप्लिकेशन को आने वाले लिंक को इंटरसेप्ट करें.

  5. Firebase कंसोल में 'Google साइन-इन' चालू करें:

    1. Firebase कंसोल में, पुष्टि करें सेक्शन खोलें.
    2. साइन इन करने का तरीका टैब पर, Google साइन इन का तरीका चालू करें और सेव करें पर क्लिक करें.
  6. अपने Cordava प्रोजेक्ट में ज़रूरी प्लगिन इंस्टॉल करें.

    # Plugin to pass application build info (app name, ID, etc) to the OAuth widget.
    cordova plugin add cordova-plugin-buildinfo --save
    # Plugin to handle Universal Links (Android app link redirects)
    cordova plugin add cordova-universal-links-plugin-fix --save
    # Plugin to handle opening secure browser views on iOS/Android mobile devices
    cordova plugin add cordova-plugin-browsertab --save
    # Plugin to handle opening a browser view in older versions of iOS and Android
    cordova plugin add cordova-plugin-inappbrowser --save
    # Plugin to handle deep linking through Custom Scheme for iOS
    # Substitute *com.firebase.cordova* with the iOS bundle ID of your app.
    cordova plugin add cordova-plugin-customurlscheme --variable \
        URL_SCHEME=com.firebase.cordova --save
    
  7. अपनी Cordava config.xml फ़ाइल में यह कॉन्फ़िगरेशन जोड़ें, जहां पहले चरण में शामिल डोमेन AUTH_DOMAIN है और DYNAMIC_LINK_DOMAIN डोमेन के चरण (3c) में दिए गए निर्देशों का पालन करें.

    <universal-links>
        <host name="DYNAMIC_LINK_DOMAIN" scheme="https" />
        <host name="AUTH_DOMAIN" scheme="https">
            <path url="/__/auth/callback"/>
        </host>
    </universal-links>
    

    कॉन्फ़िगरेशन का एक उदाहरण ऐसा हो सकता है:

    <universal-links>
        <host name="example.page.link" scheme="https" />
        <host name="example-app.firebaseapp.com" scheme="https">
            <path url="/__/auth/callback"/>
        </host>
    </universal-links>
    

    अगर कस्टम डोमेन auth.custom.domain.com का इस्तेमाल किया गया है, तो my-app.firebaseapp.com.

    Android ऐप्लिकेशन के लिए singleTask का इस्तेमाल launchMode के लिए किया जाना चाहिए.

    <preference name="AndroidLaunchMode" value="singleTask" />
    

Firebase SDK टूल की मदद से साइन-इन की प्रोसेस को मैनेज करना

  1. यह पता लगाने के लिए कि Firebase में पुष्टि, deviceReady इवेंट पर निर्भर करती है मौजूदा कोर्डोवा एनवायरमेंट को बिलकुल सही तरह से बनाया गया है. Firebase ऐप्लिकेशन इंस्टेंस पक्का करना इवेंट के ट्रिगर होने के बाद शुरू होता है.

  2. Google प्रोवाइडर ऑब्जेक्ट का इंस्टेंस बनाएं:

    Web

    import { GoogleAuthProvider } from "firebase/auth/cordova";
    
    const provider = new GoogleAuthProvider();

    Web

    var provider = new firebase.auth.GoogleAuthProvider();
  3. इसका इस्तेमाल करके Google प्रोवाइडर ऑब्जेक्ट का इस्तेमाल करके Firebase से पुष्टि करें signInWithRedirect. ध्यान दें कि signInWithPopup कोर्डोवा में इस्तेमाल नहीं किया जा सकता.

    Web

    import { getAuth, signInWithRedirect, getRedirectResult, GoogleAuthProvider } from "firebase/auth/cordova";
    
    const auth = getAuth();
    signInWithRedirect(auth, new GoogleAuthProvider())
      .then(() => {
        return getRedirectResult(auth);
      })
      .then((result) => {
        const credential = GoogleAuthProvider.credentialFromResult(result);
    
        // This gives you a Google Access Token.
        // You can use it to access the Google API.
        const token = credential.accessToken;
    
        // The signed-in user info.
        const user = result.user;
        // ...
      }).catch((error) => {
        // Handle Errors here.
        const errorCode = error.code;
        const errorMessage = error.message;
      });

    Web

    firebase.auth().signInWithRedirect(provider).then(() => {
      return firebase.auth().getRedirectResult();
    }).then((result) => {
      /** @type {firebase.auth.OAuthCredential} */
      var credential = result.credential;
    
      // This gives you a Google Access Token.
      // You can use it to access the Google API.
      var token = credential.accessToken;
      // The signed-in user info.
      var user = result.user;
      // ...
    }).catch((error) => {
      // Handle Errors here.
      var errorCode = error.code;
      var errorMessage = error.message;
    });
  4. ऐसी स्थिति को मैनेज करने के लिए जहां साइन-इन करने से पहले, ऐप्लिकेशन की गतिविधि खत्म हो जाती है कार्रवाई पूरी हो जाती है, जब आपका ऐप्लिकेशन काम करे, तो getRedirectResult को कॉल करें लोड करता है.

    Web

    import { getAuth, getRedirectResult, GoogleAuthProvider } from "firebase/auth/cordova";
    
    const auth = getAuth();
    getRedirectResult(auth)
      .then((result) => {
        const credential = GoogleAuthProvider.credentialFromResult(result);
        if (credential) {        
          // This gives you a Google Access Token.
          // You can use it to access the Google API.
          const token = credential.accessToken;
          // The signed-in user info.
          const user = result.user;
          // ...
        }
      })
      .catch((error) => {
        // Handle Errors here.
        const errorCode = error.code;
        const errorMessage = error.message;
      });

    Web

    firebase.auth().getRedirectResult().then((result) => {
      if (result.credential) {
        /** @type {firebase.auth.OAuthCredential} */
        var credential = result.credential;
    
        // This gives you a Google Access Token.
        // You can use it to access the Google API.
        var token = credential.accessToken;
        // The signed-in user info.
        var user = result.user;
        // ...
      }
    }).catch((error) => {
      // Handle Errors here.
      var errorCode = error.code;
      var errorMessage = error.message;
    });

    नई कंपनी को लिंक करने के लिए भी इसी तरीके का इस्तेमाल किया जा सकता है linkWithRedirect या सेवा देने वाली किसी मौजूदा कंपनी से फिर से पुष्टि करने के लिए reauthenticateWithRedirect का इस्तेमाल करके.