Javascript ব্যবহার করে পাসওয়ার্ড-ভিত্তিক অ্যাকাউন্ট ব্যবহার করে Firebase-এর মাধ্যমে যাচাইকরণ

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

AI সহায়তা পেতে, নিচে দেওয়া প্রম্পটটি আপনার AI কোডিং এজেন্টে (যেমন Antigravity, Claude Code, Codex ও Cursor) কপি করুন। আপনি প্রম্পট কাস্টমাইজ করতে এবং এজেন্টের সাথে আইটেরেট করতে পারবেন। ইনস্টলেশন সংক্রান্ত বিস্তারিত তথ্য পেতে Firebase এজেন্ট দক্ষতা দেখুন।

Help me use Firebase in my app.
1. Make sure that **Firebase agent skills** are installed and updated. For Claude Code, Codex, or Cursor agents, help me install the Firebase plugin. For other agents, run `npx skills add firebase/agent-skills`. Always try to use **Firebase agent skills** for Firebase-related tasks.
2. Help me set up and use Firebase Authentication with email and password authentication in my app.

শুরু করার আগে

  1. আপনার JavaScript প্রোজেক্টে Firebase যোগ করুন।
  2. আপনি এখনও Firebase প্রোজেক্টের সাথে অ্যাপ কানেক্ট না করে থাকলে, Firebase কনসোল থেকে এটি করুন।
  3. আপনার Firebase প্রোজেক্টের জন্য সাইন-ইন পরিষেবা প্রদানকারী হিসেবে ইমেল/পাসওয়ার্ড চালু করুন:
    1. Firebase কনসোলে গিয়ে নিরাপত্তা > যাচাইকরণ বিকল্পে যান।
    2. সাইন-ইন পদ্ধতি ট্যাবে, ইমেল/পাসওয়ার্ড সাইন-ইন প্রদানকারীকে চালু করুন।
    3. সেভ করুন বিকল্পে ক্লিক করুন।

পাসওয়ার্ড-ভিত্তিক অ্যাকাউন্ট তৈরি করা

পাসওয়ার্ড সহ নতুন ব্যবহারকারীর অ্যাকাউন্ট তৈরি করতে, আপনার অ্যাপের সাইন-আপ পৃষ্ঠায় গিয়ে এইসব ধাপ সম্পূর্ণ করুন:

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

    Web

    import { getAuth, createUserWithEmailAndPassword } from "firebase/auth";
    
    const auth = getAuth();
    createUserWithEmailAndPassword(auth, email, password)
      .then((userCredential) => {
        // Signed up 
        const user = userCredential.user;
        // ...
      })
      .catch((error) => {
        const errorCode = error.code;
        const errorMessage = error.message;
        // ..
      });

    Web

    firebase.auth().createUserWithEmailAndPassword(email, password)
      .then((userCredential) => {
        // Signed in 
        var user = userCredential.user;
        // ...
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ..
      });
    নতুন অ্যাকাউন্ট তৈরি করা হলে, ব্যবহারকারী অটোমেটিক সাইন-ইন হয়ে যান। সাইন-ইন করা ব্যবহারকারীর বিবরণ পেতে, নিচে 'পরবর্তী ধাপ' বিভাগটি দেখুন।

    এছাড়াও, আপনি এখানে ভুল ধরতে ও সমাধান করতে পারবেন। সমস্যার কোডের তালিকা দেখতে Auth রেফারেন্স ডকুমেন্ট দেখুন।

ইমেল আইডি ও পাসওয়ার্ড দিয়ে কোনও ব্যবহারকারীকে সাইন-ইন করানো

পাসওয়ার্ড দিয়ে কোনও ব্যবহারকারীকে সাইন-ইন করানোর ধাপগুলি নতুন অ্যাকাউন্ট তৈরি করার ধাপগুলির মতোই। আপনার অ্যাপের সাইন-ইন পৃষ্ঠায়, নিম্নলিখিত কাজগুলি করুন:

  1. কোনও ব্যবহারকারী আপনার অ্যাপে সাইন-ইন করলে, ব্যবহারকারীর ইমেল আইডি ও পাসওয়ার্ড signInWithEmailAndPassword-এ পাস করুন:

    Web

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

    Web

    firebase.auth().signInWithEmailAndPassword(email, password)
      .then((userCredential) => {
        // Signed in
        var user = userCredential.user;
        // ...
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
      });
    সাইন-ইন করা ব্যবহারকারীর বিবরণ পেতে, নিচে 'পরবর্তী ধাপ' বিভাগটি দেখুন।

    এছাড়াও, আপনি এখানে ভুল ধরতে ও সমাধান করতে পারবেন। সমস্যার কোডের তালিকা দেখতে Auth রেফারেন্স ডকুমেন্ট দেখুন।

সাজেস্ট করা: পাসওয়ার্ড নীতি সেট করা

পাসওয়ার্ডের জটিলতা সংক্রান্ত প্রয়োজনীয়তা প্রয়োগ করে আপনি অ্যাকাউন্টের নিরাপত্তা উন্নত করতে পারবেন।

আপনার প্রোজেক্টের জন্য পাসওয়ার্ড নীতি কনফিগার করতে, Firebase কনসোলের নিরাপত্তা > অনুমোদন > সেটিংস ট্যাবে গিয়ে পাসওয়ার্ড নীতি বিভাগ খুলুন:

যাচাইকরণ সেটিংস

Firebase Authentication পাসওয়ার্ড নীতিতে নিম্নলিখিত পাসওয়ার্ড সংক্রান্ত প্রয়োজনীয়তা মেনে চলা হয়:

  • ছোট হাতের অক্ষর প্রয়োজন

  • বড় হাতের অক্ষর প্রয়োজন

  • সংখ্যাসূচক অক্ষর প্রয়োজন

  • বর্ণসাংখ্যিক অক্ষর ছাড়া অন্য অক্ষর প্রয়োজন

    নিম্নলিখিত অক্ষরগুলি বর্ণসাংখ্যিক অক্ষর নয় সংক্রান্ত প্রয়োজনীয়তা পূরণ করে: ^ $ * . [ ] { } ( ) ? " ! @ # % & / \ , > < ' : ; | _ ~

  • পাসওয়ার্ডের ন্যূনতম দৈর্ঘ্য (৬ থেকে ৩০টি অক্ষরের মধ্যে; ডিফল্ট হিসেবে ৬টি অক্ষর)

  • পাসওয়ার্ডের সর্বাধিক দৈর্ঘ্য (সর্বাধিক ৪০৯৬টি অক্ষর)

আপনি দুটি মোডে পাসওয়ার্ড নীতি এনফোর্সমেন্ট চালু করতে পারবেন:

  • প্রয়োজনীয়: ব্যবহারকারী আপনার নীতি মেনে চলে এমন পাসওয়ার্ড দিয়ে আপডেট না করা পর্যন্ত সাইন-আপ করার প্রচেষ্টা সফল হবে না।

  • বিজ্ঞপ্তি: ব্যবহারকারীরা নীতি মেনে চলে না এমন পাসওয়ার্ড দিয়ে সাইন-আপ করতে পারবেন। এই মোড ব্যবহার করার সময়, ব্যবহারকারীর পাসওয়ার্ড ক্লায়েন্ট-সাইড নীতি মেনে চলছে কিনা তা আপনাকে চেক করতে হবে এবং না চললে, কোনওভাবে ব্যবহারকারীকে তার পাসওয়ার্ড আপডেট করার জন্য প্রম্পট করতে হবে।

নতুন ব্যবহারকারীদের সবসময় এমন পাসওয়ার্ড বেছে নিতে হয় যা আপনার নীতি মেনে চলে।

আপনার অ্যাক্টিভ ব্যবহারকারী থাকলে, সাইন-ইন করার সময় জোর করে আপগ্রেড করার সুবিধা চালু না করার জন্য আমরা সাজেস্ট করি যদি না আপনি এমন ব্যবহারকারীদের অ্যাক্সেস ব্লক করতে চান যাদের পাসওয়ার্ড আপনার নীতি মেনে চলে না। পরিবর্তে, 'বিজ্ঞপ্তি' মোড ব্যবহার করুন, যা ব্যবহারকারীদের তাদের বর্তমান পাসওয়ার্ড দিয়ে সাইন-ইন করতে দেয় এবং তাদের পাসওয়ার্ডে কী কী প্রয়োজন নেই সেই সম্পর্কে জানায়।

ক্লায়েন্টে পাসওয়ার্ড যাচাই করা

import { getAuth, validatePassword } from "firebase/auth";
const status = await validatePassword(getAuth(), passwordFromUser);
if (!status.isValid) {
  // Password could not be validated. Use the status to show what
  // requirements are met and which are missing.

  // If a criterion is undefined, it is not required by policy. If the
  // criterion is defined but false, it is required but not fulfilled by
  // the given password. For example:
  const needsLowerCase = status.containsLowercaseLetter !== true;
}

সাজেস্ট করা: ইমেল এনুমেরেশন সুরক্ষা চালু করুন

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

এই ঝুঁকি কমানোর জন্য, আমরা সাজেস্ট করি যে আপনার প্রোজেক্টের জন্য ইমেল এনুমেরেশন সুরক্ষা চালু করা আছে কিনা তা নিশ্চিত করুন। আপনি Firebase কনসোলে এই সেটিং চেক করতে পারবেন: নিরাপত্তা > যাচাইকরণ > সেটিংস ট্যাব-এ যান, এবং তারপর ব্যবহারকারীর অ্যাকশন বিকল্পে ক্লিক করুন।

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

পরবর্তী ধাপ

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

  • আপনার অ্যাপে, ব্যবহারকারীর অনুমোদনের স্ট্যাটাস জানার জন্য সাজেস্ট করা পদ্ধতি হল, Auth অবজেক্টে একটি অবজ়ার্ভার সেট করা। আপনি তারপরে User অবজেক্ট থেকে ব্যবহারকারীর প্রাথমিক প্রোফাইল সংক্রান্ত তথ্য পেতে পারেন। ব্যবহারকারীদের ম্যানেজ করা দেখুন।

  • আপনার Firebase Realtime Database এবং Cloud Storage নিরাপত্তা বিধিতে, আপনি 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.
});