জাভাস্ক্রিপ্ট ব্যবহার করে Firebase-এর মাধ্যমে বেনামে যাচাইকরণ

Firebase-এর সাথে যাচাইকরণের জন্য আপনি Firebase Authentication ব্যবহার করে সাময়িক বেনামী অ্যাকাউন্ট তৈরি ও ব্যবহার করতে পারেন। এইসব সাময়িক বেনামী অ্যাকাউন্ট ব্যবহার করে যেসব ব্যবহারকারী এখনও আপনার অ্যাপে সাইন-আপ করেননি তাদের নিরাপত্তা সংক্রান্ত নিয়মের মাধ্যমে সুরক্ষিত ডেটা নিয়ে কাজ করার অনুমতি দেওয়া যেতে পারে। কোনও বেনামী ব্যবহারকারী আপনার অ্যাপে সাইন-আপ করার সিদ্ধান্ত নিলে, আপনি বেনামী অ্যাকাউন্টের সাথে তার সাইন-ইন ক্রেডেনশিয়াল লিঙ্ক করতে পারবেন যাতে তিনি ভবিষ্যতে সেশনে সুরক্ষিত ডেটা নিয়ে কাজ চালিয়ে যেতে পারেন।

শুরু করার আগে

  1. আপনার JavaScript প্রোজেক্টে Firebase যোগ করুন।
  2. আপনি এখনও Firebase প্রোজেক্টের সাথে অ্যাপ কানেক্ট না করে থাকলে, এটি Firebase কনসোল থেকে করুন।
  3. পরিচয় গোপন রেখে যাচাইকরণ চালু করুন:
    1. Firebase কনসোলে গিয়ে নিরাপত্তা > যাচাইকরণ বিকল্পে যান।
    2. সাইন-ইন পদ্ধতি ট্যাবে, অনামিকা সাইন-ইন প্রদানকারী চালু করুন।
    3. ঐচ্ছিক: আপনার প্রোজেক্ট Firebase Authentication with Identity Platform-এ আপগ্রেড করে থাকলে, আপনি অটোমেটিক ক্লিন-আপ চালু করতে পারবেন। আপনি এই সেটিং চালু করলে, ৩০ দিনের বেশি পুরনো অপরিচিত অ্যাকাউন্ট অটোমেটিক মুছে যাবে। অটোমেটিক ক্লিন-আপ চালু করা প্রোজেক্টে, অ্যাননিমাস অথেন্টিকেশন আর ব্যবহারের সীমা বা বিলিং কোটার মধ্যে গণনা করা হবে না। দেখুন অটোমেটিক ক্লিন-আপ।

পরিচয় গোপন রেখে Firebase-এর মাধ্যমে যাচাইকরণ করা

সাইন-আউট করা কোনও ব্যবহারকারী Firebase-এর মাধ্যমে যাচাইকরণ প্রয়োজন এমন কোনও অ্যাপ ফিচার ব্যবহার করলে, নিম্নলিখিত ধাপগুলি সম্পূর্ণ করে ব্যবহারকারীকে বেনামে সাইন-ইন করান:

  1. signInAnonymously মেথড কল করুন:

    Web

    import { getAuth, signInAnonymously } from "firebase/auth";
    
    const auth = getAuth();
    signInAnonymously(auth)
      .then(() => {
        // Signed in..
      })
      .catch((error) => {
        const errorCode = error.code;
        const errorMessage = error.message;
        // ...
      });

    Web

    firebase.auth().signInAnonymously()
      .then(() => {
        // Signed in..
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ...
      });
    এছাড়াও, আপনি এখানে ভুল ধরতে ও সমাধান করতে পারবেন। সমস্যার কোডের তালিকা দেখতে Auth রেফারেন্স ডকুমেন্ট দেখুন।
  2. signInAnonymously পদ্ধতি কোনও সমস্যা ছাড়াই সম্পূর্ণ হলে, onAuthStateChanged-এ রেজিস্টার করা পর্যবেক্ষক ট্রিগার হবে এবং আপনি User অবজেক্ট থেকে বেনামী ব্যবহারকারীর অ্যাকাউন্ট ডেটা পাবেন:

    Web

    import { getAuth, onAuthStateChanged } from "firebase/auth";
    
    const auth = getAuth();
    onAuthStateChanged(auth, (user) => {
      if (user) {
        // User is signed in, see docs for a list of available properties
        // https://firebase.google.com/docs/reference/js/auth.user
        const uid = user.uid;
        // ...
      } else {
        // User is signed out
        // ...
      }
    });

    Web

    firebase.auth().onAuthStateChanged((user) => {
      if (user) {
        // User is signed in, see docs for a list of available properties
        // https://firebase.google.com/docs/reference/js/v8/firebase.User
        var uid = user.uid;
        // ...
      } else {
        // User is signed out
        // ...
      }
    });

অনামonymous অ্যাকাউন্টকে স্থায়ী অ্যাকাউন্টে পরিবর্তন করা

কোনও বেনামী ব্যবহারকারী আপনার অ্যাপে সাইন-আপ করলে, আপনি হয়ত তাকে তার নতুন অ্যাকাউন্টের মাধ্যমে কাজ চালিয়ে যেতে দিতে চাইবেন—যেমন, আপনি হয়ত সাইন-আপ করার আগে ব্যবহারকারী যেসব আইটেম তার শপিং কার্টে যোগ করেছেন সেগুলি তার নতুন অ্যাকাউন্টের শপিং কার্টে উপলভ্য করতে চাইবেন। এটি করতে, নিম্নলিখিত ধাপগুলি সম্পূর্ণ করুন:

  1. ব্যবহারকারী সাইন-আপ করলে, ব্যবহারকারীর যাচাইকরণ প্রদানকারীর জন্য সাইন-ইন ফ্লো সম্পূর্ণ করুন, তবে এর মধ্যে Auth.signInWith পদ্ধতিগুলির একটি কল করা অন্তর্ভুক্ত নয়। যেমন, ব্যবহারকারীর Google আইডি টোকেন, Facebook অ্যাক্সেস টোকেন অথবা ইমেল আইডি ও পাসওয়ার্ড পান।
  2. নতুন যাচাইকরণ পরিষেবা প্রদানকারীর জন্য AuthCredential পান:

    Google সাইন-ইন

    Web

    import { GoogleAuthProvider } from "firebase/auth";
    
    const credential = GoogleAuthProvider.credential(
      googleUser.getAuthResponse().id_token);

    Web

    var credential = firebase.auth.GoogleAuthProvider.credential(
      googleUser.getAuthResponse().id_token);
    Facebook লগ-ইন

    Web

    import { FacebookAuthProvider } from "firebase/auth";
    
    const credential = FacebookAuthProvider.credential(
      response.authResponse.accessToken);

    Web

    var credential = firebase.auth.FacebookAuthProvider.credential(
      response.authResponse.accessToken);
    ইমেল-পাসওয়ার্ড দিয়ে সাইন-ইন করা

    Web

    import { EmailAuthProvider } from "firebase/auth";
    
    const credential = EmailAuthProvider.credential(email, password);

    Web

    var credential = firebase.auth.EmailAuthProvider.credential(email, password);
  3. সাইন-ইন করা ব্যবহারকারীর link পদ্ধতিতে AuthCredential অবজেক্ট পাস করুন:

    Web

    import { getAuth, linkWithCredential } from "firebase/auth";
    
    const auth = getAuth();
    linkWithCredential(auth.currentUser, credential)
      .then((usercred) => {
        const user = usercred.user;
        console.log("Anonymous account successfully upgraded", user);
      }).catch((error) => {
        console.log("Error upgrading anonymous account", error);
      });

    Web

    auth.currentUser.linkWithCredential(credential)
      .then((usercred) => {
        var user = usercred.user;
        console.log("Anonymous account successfully upgraded", user);
      }).catch((error) => {
        console.log("Error upgrading anonymous account", error);
      });

link কল করা সফল হলে, ব্যবহারকারীর নতুন অ্যাকাউন্ট অনামনিমাস অ্যাকাউন্টের Firebase ডেটা অ্যাক্সেস করতে পারবে।

অটোমেটিক ক্লিন-আপ

আপনার প্রোজেক্ট Firebase Authentication with Identity Platform-এ আপগ্রেড করে থাকলে, আপনি Firebase কনসোলে অটোমেটিক ক্লিন-আপ চালু করতে পারবেন। এই ফিচার চালু করলে, আপনি Firebase-কে ৩০ দিনের বেশি পুরনো অনামিকা অ্যাকাউন্ট অটোমেটিক মুছে দেওয়ার অনুমতি দেন। অটোমেটিক পরিষ্কার করার সুবিধা চালু থাকা প্রোজেক্টে, পরিচয় গোপন রেখে করা যাচাইকরণ ব্যবহারের সীমা বা বিলিং কোটার মধ্যে গণনা করা হবে না।

  • অটোমেটিক ক্লিন-আপ চালু করার পরে তৈরি করা যেকোনও বেনামী অ্যাকাউন্ট তৈরি করার ৩০ দিন পরে যেকোনও সময় অটোমেটিক মুছে ফেলা হতে পারে।
  • অটোমেটিক ক্লিন-আপ চালু করার ৩০ দিন পরে আগে থেকে থাকা বেনামী অ্যাকাউন্ট অটোমেটিক মুছে দেওয়ার জন্য উপযুক্ত হবে।
  • আপনি অটোমেটিক ক্লিন-আপ বন্ধ করে দিলে, মুছে ফেলার জন্য শিডিউল করা যেকোনও বেনামী অ্যাকাউন্ট মুছে ফেলার জন্য শিডিউল করা থাকবে।
  • আপনি কোনও সাইন-ইন পদ্ধতির সাথে লিঙ্ক করে কোনও বেনামী অ্যাকাউন্ট "আপগ্রেড" করলে, অ্যাকাউন্টটি অটোমেটিক মুছে যাবে না।

এই ফিচার চালু করার আগে কতজন ব্যবহারকারী প্রভাবিত হবেন তা দেখতে চাইলে এবং আপনি যদি নিজের প্রোজেক্ট Firebase Authentication with Identity Platform-এ আপগ্রেড করে থাকেন, তাহলে আপনি is_anon-এর মাধ্যমে ক্লাউড লগিং ফিল্টার করতে পারবেন।

পরবর্তী ধাপ

যেহেতু ব্যবহারকারীরা এখন Firebase-এর মাধ্যমে যাচাই করিয়ে নিতে পারবেন, তাই আপনি Firebase নিয়ম ব্যবহার করে আপনার Firebase ডেটাবেসে ডেটা অ্যাক্সেস করার ব্যাপারে নিয়ন্ত্রণ করতে পারবেন।