কর্ডোভা দিয়ে OAuth প্রদানকারী ব্যবহার করে প্রমাণীকরণ করুন

Firebase JS SDK-এর সাহায্যে, আপনি আপনার Firebase ব্যবহারকারীদের কর্ডোভা পরিবেশে যেকোনো সমর্থিত OAuth প্রদানকারী ব্যবহার করে প্রমাণীকরণ করতে দিতে পারেন। সাইন-ইন ফ্লো সঞ্চালনের জন্য Firebase SDK ব্যবহার করে, অথবা ম্যানুয়ালি OAuth ফ্লো চালিয়ে এবং ফলস্বরূপ OAuth শংসাপত্র Firebase-এ পাস করার মাধ্যমে আপনি যেকোনো সমর্থিত OAuth প্রদানকারীকে সংহত করতে পারেন।

কর্ডোভার জন্য ফায়ারবেস প্রমাণীকরণ সেট আপ করুন

  1. আপনার JavaScript প্রকল্পে Firebase যোগ করুন । Firebase স্নিপেট যোগ করার সময়, authDomain কনফিগারেশন ভেরিয়েবলের দিকে খেয়াল রাখুন, যা দেখতে my-app.firebaseapp.com এর মতো হবে। যদি Firebase প্রভিশন করা firebaseapp.com ডোমেনের পরিবর্তে একটি কাস্টম ডোমেন ব্যবহার করা হয়, তাহলে তার পরিবর্তে কাস্টম ডোমেন ব্যবহার করা উচিত।

  2. একটি Android অ্যাপ সেট আপ করতে, Firebase কনসোলে আপনার Android অ্যাপ যোগ করুন এবং আপনার অ্যাপের বিবরণ লিখুন। আপনার উত্পন্ন google-services.json দরকার নেই।

  3. একটি iOS অ্যাপ সেট আপ করতে, একটি iOS অ্যাপ্লিকেশন তৈরি করুন এবং এটি Firebase কনসোলে যোগ করুন। কাস্টম ইউআরএল স্কিম প্লাগইন ইনস্টল করার সময় পরে যোগ করার জন্য আপনার iOS বান্ডেল আইডির প্রয়োজন হবে।

  4. ফায়ারবেস ডায়নামিক লিঙ্কগুলি সক্ষম করুন:

    1. Firebase কনসোলে , Dynamic Links বিভাগ খুলুন।
    2. আপনি যদি এখনও Dynamic Links শর্তাদি গ্রহণ না করে থাকেন এবং একটি Dynamic Links ডোমেন তৈরি না করে থাকেন, তাহলে এখনই করুন৷

      আপনি যদি ইতিমধ্যেই একটি Dynamic Links ডোমেন তৈরি করে থাকেন, তবে এটি নোট করুন। একটি Dynamic Links ডোমেন সাধারণত নিম্নলিখিত উদাহরণের মত দেখায়:

      example.page.link

      ইনকামিং লিঙ্কটি আটকাতে আপনি যখন আপনার Apple বা Android অ্যাপ কনফিগার করবেন তখন আপনার এই মানটির প্রয়োজন হবে।

  5. Firebase কনসোলে Google সাইন-ইন সক্ষম করুন:

    1. Firebase কনসোলে , Auth বিভাগটি খুলুন।
    2. সাইন ইন পদ্ধতি ট্যাবে, Google সাইন-ইন পদ্ধতি সক্ষম করুন এবং সংরক্ষণ করুন ক্লিক করুন৷
  6. আপনার কর্ডোভা প্রকল্পে প্রয়োজনীয় প্লাগইনগুলি ইনস্টল করুন৷

    # 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. আপনার Cordova config.xml ফাইলে নিম্নলিখিত কনফিগারেশন যোগ করুন, যেখানে ধাপ (1) থেকে AUTH_DOMAIN হল ডোমেন এবং ধাপ (3c) থেকে DYNAMIC_LINK_DOMAIN হল ডোমেন৷

    <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 প্রতিস্থাপন করুন।

    অ্যান্ড্রয়েড অ্যাপ্লিকেশনের জন্য singleTask launchMode জন্য ব্যবহার করা উচিত।

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

Firebase SDK দিয়ে সাইন-ইন ফ্লো পরিচালনা করুন

  1. ফায়ারবেস প্রমাণীকরণ বর্তমান কর্ডোভা পরিবেশ সঠিকভাবে নির্ধারণ করার জন্য deviceReady ইভেন্টের উপর নির্ভর করে। নিশ্চিত করুন যে সেই ইভেন্টটি ট্রিগার হওয়ার পরে Firebase অ্যাপ ইনস্ট্যান্স আরম্ভ করা হয়েছে।

  2. Google প্রদানকারী বস্তুর একটি উদাহরণ তৈরি করুন:

    Web

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

    Web

    var provider = new firebase.auth.GoogleAuthProvider();
  3. signInWithRedirect ব্যবহার করে Google প্রদানকারী অবজেক্ট ব্যবহার করে Firebase-এর সাথে প্রমাণীকরণ করুন। মনে রাখবেন যে 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 ব্যবহার করে একটি বিদ্যমান প্রদানকারীর সাথে পুনরায় প্রমাণীকরণ করতে একই পদ্ধতি ব্যবহার করা যেতে পারে।