জাভাস্ক্রিপ্ট ব্যবহার করে বেনামে ফায়ারবেসের সাথে প্রমাণীকরণ করুন

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

শুরু করার আগে

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

ফায়ারবেসের মাধ্যমে বেনামে প্রমাণীকরণ করুন

যখন কোনো সাইন-আউট করা ব্যবহারকারী অ্যাপের এমন কোনো ফিচার ব্যবহার করেন যার জন্য 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 Reference Docs দেখুন।
  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
        // ...
      }
    });

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

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

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

    গুগল সাইন-ইন

    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);
    ফেসবুক লগইন

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

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

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

পরবর্তী পদক্ষেপ

এখন যেহেতু ব্যবহারকারীরা ফায়ারবেসের মাধ্যমে প্রমাণীকরণ করতে পারে, আপনি ফায়ারবেস রুলস ব্যবহার করে আপনার ফায়ারবেস ডাটাবেসে থাকা ডেটাতে তাদের অ্যাক্সেস নিয়ন্ত্রণ করতে পারেন।