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

ব্যবহারকারী সফলভাবে সাইন ইন করলে কাস্টম স্বাক্ষরিত টোকেন তৈরি করার জন্য আপনার অথেনটিকেশন সার্ভারটি পরিবর্তন করে আপনি একটি কাস্টম অথেনটিকেশন সিস্টেমের সাথে Firebase Authentication একীভূত করতে পারেন। আপনার অ্যাপ এই টোকেনটি গ্রহণ করে এবং ফায়ারবেসের সাথে অথেনটিকেশনের জন্য এটি ব্যবহার করে।

শুরু করার আগে

  1. আপনার জাভাস্ক্রিপ্ট প্রজেক্টে ফায়ারবেস যুক্ত করুন
  2. আপনার প্রোজেক্টের সার্ভার কীগুলো সংগ্রহ করুন:
    1. Firebase কনসোলে, এখানে যান > পরিষেবা অ্যাকাউন্ট ট্যাব
    2. Firebase Admin SDK সেকশনের একদম নিচে, Generate New Private Key-তে ক্লিক করুন।
    3. নতুন সার্ভিস অ্যাকাউন্টের পাবলিক/প্রাইভেট কী পেয়ারটি আপনার কম্পিউটারে স্বয়ংক্রিয়ভাবে সেভ হয়ে যায়। এই ফাইলটি আপনার অথেনটিকেশন সার্ভারে কপি করুন।

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

  1. যখন ব্যবহারকারীরা আপনার অ্যাপে সাইন ইন করেন, তখন তাদের সাইন-ইন ক্রেডেনশিয়াল (যেমন, ইউজারনেম এবং পাসওয়ার্ড) আপনার অথেনটিকেশন সার্ভারে পাঠান। আপনার সার্ভার ক্রেডেনশিয়ালগুলো যাচাই করে এবং সেগুলো বৈধ হলে একটি কাস্টম টোকেন ফেরত দেয়।
  2. আপনার অথেনটিকেশন সার্ভার থেকে কাস্টম টোকেনটি পাওয়ার পর, ব্যবহারকারীকে সাইন ইন করতে সেটি signInWithCustomToken এ পাস করুন:

    Web

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

    Web

    firebase.auth().signInWithCustomToken(token)
      .then((userCredential) => {
        // Signed in
        var user = userCredential.user;
        // ...
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ...
      });

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

কোনো ব্যবহারকারী প্রথমবার সাইন ইন করার পর, একটি নতুন ব্যবহারকারী অ্যাকাউন্ট তৈরি হয় এবং সেটি ব্যবহারকারীর সাইন ইন করার ক্রেডেনশিয়াল—অর্থাৎ, ইউজার নেম ও পাসওয়ার্ড, ফোন নম্বর, বা অথোরাইজেশন প্রোভাইডারের তথ্যের—সাথে লিঙ্ক করা হয়। এই নতুন অ্যাকাউন্টটি আপনার ফায়ারবেস প্রজেক্টের অংশ হিসেবে সংরক্ষিত থাকে এবং ব্যবহারকারী কীভাবে সাইন ইন করছেন তা নির্বিশেষে, আপনার প্রজেক্টের প্রতিটি অ্যাপে তাকে শনাক্ত করতে এটি ব্যবহার করা যেতে পারে।

  • আপনার অ্যাপগুলিতে, ব্যবহারকারীর অথেন্টিকেশন স্ট্যাটাস জানার জন্য প্রস্তাবিত উপায় হলো Auth অবজেক্টে একটি অবজারভার সেট করা। এরপর আপনি User অবজেক্ট থেকে ব্যবহারকারীর প্রাথমিক প্রোফাইল তথ্য পেতে পারেন। ব্যবহারকারী ব্যবস্থাপনা (Manage Users) দেখুন।

  • আপনার Firebase Realtime Database and Cloud Storage Security Rules- এ, আপনি auth ভেরিয়েবল থেকে সাইন-ইন করা ব্যবহারকারীর অনন্য ইউজার আইডি পেতে পারেন এবং একজন ব্যবহারকারী কোন ডেটা অ্যাক্সেস করতে পারবে তা নিয়ন্ত্রণ করতে এটি ব্যবহার করতে পারেন।

বিদ্যমান কোনো ব্যবহারকারী অ্যাকাউন্টের সাথে অথেন্টিকেশন প্রোভাইডারের ক্রেডেনশিয়াল লিঙ্ক করার মাধ্যমে আপনি ব্যবহারকারীদের একাধিক অথেন্টিকেশন প্রোভাইডার ব্যবহার করে আপনার অ্যাপে সাইন ইন করার অনুমতি দিতে পারেন।

কোনো ব্যবহারকারীকে সাইন আউট করতে, signOut কল করুন:

Web

import { getAuth, signOut } from "firebase/auth";

const auth = getAuth();
signOut(auth).then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});

Web

firebase.auth().signOut().then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});