Firebase Auth হল মোবাইল এবং ওয়েব অ্যাপ্লিকেশনে ব্যবহারকারী প্রমাণীকরণের জন্য Google-এর একটি ক্লাউড পরিষেবা, যা ইমেল, ফোন এবং সামাজিক নেটওয়ার্কের মাধ্যমে রেডি-মেড সাইন-ইন পদ্ধতি প্রদান করে। SDK সম্পূর্ণ সেশন চক্র পরিচালনা করে: নিবন্ধন, সাইন-ইন, টোকেন রিফ্রেশ এবং সাইন-আউট। Google, 2026-এর মতে, Firebase Auth বক্সের বাইরে 10টিরও বেশি প্রমাণীকরণ প্রদানকারী সমর্থন করে। পরিষেবাটি প্রমাণিত ব্যবহারকারীর সংখ্যার কোনো সীমা ছাড়াই বিনামূল্যে।
মূল পয়েন্ট
Firebase Auth Firebase SDK-এর অংশ হিসাবে প্রদত্ত Google-এর একটি ব্যাকএন্ড প্রমাণীকরণ পরিষেবা। এটি সমস্ত সার্ভার-সাইড অ্যাকাউন্ট পরিচালনার যুক্তি পরিচালনা করে: পাসওয়ার্ড হ্যাশ সংরক্ষণ, JWT টোকেন তৈরি এবং OAuth 2.0 এবং OpenID Connect ফ্লো প্রক্রিয়াকরণ। ডেভেলপারদের নিজস্ব প্রমাণীকরণ সার্ভার স্থাপন, রিফ্রেশ টোকেন পরিচালনা বা যাচাইকরণ প্রোটোকল বাস্তবায়নের প্রয়োজন নেই — Firebase সবকিছু করে।
Firebase Auth একটি ইউনিফাইড ব্যবহারকারী ভাণ্ডার সহ একটি ফেডারেটেড স্থাপত্য ব্যবহার করে। প্রতিটি ব্যবহারকারী একটি অনন্য শনাক্তকারী (UID) পায় যা সাইন-ইন প্রদানকারীর উপর নির্ভর করে না। Google এবং ইমেলের মাধ্যমে নিবন্ধন করার সময়, দুটি লিঙ্কযুক্ত অ্যাকাউন্ট (প্রদানকারী) সহ একটি একক ব্যবহারকারী তৈরি করা হয়। Firebase অতিরিক্ত সার্ভার অনুরোধ ছাড়াই ক্লায়েন্ট সাইডে স্বয়ংক্রিয়ভাবে অ্যাকাউন্ট লিঙ্কিং পরিচালনা করে।
Firebase Auth টোকেনগুলি JWT (JSON Web Token) যার পেলোডে UID, ইস্যু করার সময়, মেয়াদ শেষ হওয়ার সময় এবং কাস্টম claims থাকে। অ্যাক্সেস টোকেন 1 ঘন্টা স্থায়ী হয়, রিফ্রেশ টোকেন সীমাহীন (কিন্তু অ্যাডমিন কনসোলের মাধ্যমে প্রত্যাহার করা যেতে পারে)। SDK Firebase পরিষেবাগুলিতে প্রতিটি HTTP অনুরোধে স্বয়ংক্রিয়ভাবে টোকেন রিফ্রেশ করে। Google (2026) অনুসারে, Firebase Auth প্রতিদিন 500 মিলিয়নেরও বেশি প্রমাণীকরণ পরিচালনা করে।
Firebase Auth Spark প্ল্যান (বিনামূল্যে) এবং Blaze প্ল্যান (পে-এজ-ইউ-গো) উভয় ক্ষেত্রেই সম্পূর্ণ বিনামূল্যে। একমাত্র সীমা হল Spark-এ প্রতিদিন 10 হাজার বেনামী প্রমাণীকরণ (Blaze-এ সীমাহীন)। ইমেল/ফোন এবং OAuth প্রমাণীকরণের কোনো সীমা নেই। ফোন যাচাইকরণের জন্য, Spark মাসে 10 হাজার যাচাইকরণ প্রদান করে, যখন Blaze ব্যবহার অনুযায়ী চার্জ করে (প্রথম 10 হাজারের পরে প্রতি যাচাইকরণে $0.01)। এটি Firebase Auth-কে বাজারের সবচেয়ে সাশ্রয়ী মূল্যের সমাধানগুলির মধ্যে একটি করে তোলে।
Firebase Auth বক্সের বাইরে 12টি প্রমাণীকরণ প্রদানকারী সমর্থন করে। প্রতিটি প্রদানকারী একটি পূর্বনির্ধারিত ফ্লো সহ একটি পৃথক আইডেন্টিটি পরিষেবা হিসাবে প্রয়োগ করা হয় — ডেভেলপারকে শুধুমাত্র একটি Credential অবজেক্ট তৈরি করতে হবে এবং এটি signInWithCredential-এ পাস করতে হবে। Firebase স্বয়ংক্রিয়ভাবে নির্ধারণ করে যে ব্যবহারকারী নতুন না বিদ্যমান, এবং ইমেল সদৃশতার ক্ষেত্রে, অ্যাকাউন্ট লিঙ্ক করার প্রস্তাব দেয়।
Email/Password হল Firebase সার্ভারে সংরক্ষিত পাসওয়ার্ড হ্যাশ (bcrypt) সহ মৌলিক প্রমাণীকরণ পদ্ধতি। এটি নিবন্ধন, সাইন-ইন, ইমেলের মাধ্যমে পাসওয়ার্ড রিসেট এবং ইমেল নিশ্চিতকরণ সমর্থন করে। Firebase স্বয়ংক্রিয়ভাবে পাসওয়ার্ড শক্তি পরীক্ষা করে (সর্বনিম্ন 6 অক্ষর) এবং Nটি ব্যর্থ প্রচেষ্টার পরে সাইন-ইন ব্লক করতে পারে (ব্রুট-ফোর্স সুরক্ষা)।
Google, Apple, Facebook, Twitter, Microsoft, Yahoo, GitHub — সমস্ত OAuth 2.0 প্রদানকারী 5 মিনিটের মধ্যে Firebase কনসোলের মাধ্যমে কনফিগার করা যেতে পারে। প্রতিটি প্রদানকারীর জন্য, আপনাকে প্রদানকারীর নিজস্ব কনসোল থেকে Client ID এবং Client Secret পেতে হবে। Apple Sign In App Store অ্যাপ্লিকেশনের জন্য বাধ্যতামূলক (2020 থেকে Apple-এর প্রয়োজনীয়তা)। Firebase Auth JWT যাচাইকরণের সাথে Apple Sign In ফ্লো সম্পূর্ণরূপে সমর্থন করে।
| প্রদানকারী | প্রোটোকল | Client Secret প্রয়োজন |
|---|---|---|
| OAuth 2.0 | না | |
| Apple | OAuth 2.0 + OpenID | হ্যাঁ |
| OAuth 2.0 | হ্যাঁ | |
| OAuth 1.0a | হ্যাঁ | |
| GitHub | OAuth 2.0 | হ্যাঁ |
Phone Auth হল ব্যবহারকারীর ফোন নম্বরে পাঠানো SMS কোডের মাধ্যমে প্রমাণীকরণ। Firebase কীবোর্ড ইনপুট ছাড়াই কোড স্বয়ংক্রিয়ভাবে পড়তে Silent APN (iOS) বা SMS Retriever API (Android) ব্যবহার করে। Android-এ, SMS Retriever API শুধুমাত্র Google Play Services সহ ডিভাইসগুলিতে কাজ করে। যে অঞ্চলে SMS উপলব্ধ নয়, সেখানে Firebase ফলব্যাক হিসাবে reCAPTCHA যাচাইকরণ সমর্থন করে। ফোন প্রমাণীকরণ সেই অ্যাপগুলির জন্য গুরুত্বপূর্ণ যার জন্য ফোন নম্বর বাঁধাই প্রয়োজন — খাবার ডেলিভারি, রাইড-হেইলিং, ব্যাংকিং।
Android-এ Firebase Auth যোগ করা build.gradle-এ firebase-auth-ktx নির্ভরতা যোগ করা এবং Firebase App আরম্ভ করা প্রয়োজন (Google Services প্লাগইনের মাধ্যমে স্বয়ংক্রিয়ভাবে হয়)। এর পরে, FirebaseAuth অবজেক্ট স্ট্যাটিক getInstance() পদ্ধতির মাধ্যমে উপলব্ধ — পুরো অ্যাপের জন্য একটি সিঙ্গেলটন। কোনো অতিরিক্ত কনফিগারেশনের প্রয়োজন নেই।
// build.gradle (app-level)
dependencies {
implementation(platform("com.google.firebase:firebase-bom:33.1.0"))
implementation("com.google.firebase:firebase-auth-ktx")
implementation("com.google.android.gms:play-services-auth:21.0.0")
}
createUserWithEmailAndPassword নিবন্ধনের প্রধান পদ্ধতি। এটি একটি ইমেল এবং পাসওয়ার্ড নেয়, Firebase Auth-এ একটি ব্যবহারকারী তৈরি করে এবং UID সহ একটি AuthResult অবজেক্ট ফেরত দেয়। যদি এই ইমেল সহ একজন ব্যবহারকারী ইতিমধ্যে বিদ্যমান থাকে, Firebase ERROR_EMAIL_ALREADY_IN_USE ত্রুটি ফেরত দেয়। সফল নিবন্ধনের পরে, SDK স্বয়ংক্রিয়ভাবে SharedPreferences-এ টোকেন সংরক্ষণ করে এবং signIn কল না করেই পরবর্তী অ্যাপ লঞ্চে সেশন পুনরুদ্ধার করে।
class AuthViewModel {
private val auth = FirebaseAuth.getInstance()
suspend fun register(email: String, password: String): Result<User> {
return try {
val result = auth.createUserWithEmailAndPassword(email, password).await()
Result.success(result.user?.toUser() ?: throw Exception("User is null"))
} catch (e: FirebaseAuthException) {
Result.failure(e)
}
}
}
Google Sign In-এর জন্য একটি দ্বি-পদক্ষেপ প্রক্রিয়া ব্যবহার করা হয়: Credential Manager (Android) বা Google Sign-In SDK-এর মাধ্যমে একটি ID Token প্রাপ্ত করা, তারপর টোকেনটি Firebase ক্রেডেনশিয়ালে পাস করা। Firebase তার সার্ভারে টোকেন যাচাই করে (Google-এর RSA কী দিয়ে স্বাক্ষর পরীক্ষা করে) এবং বিদ্যমান ব্যবহারকারী তৈরি করে বা ফেরত দেয়। প্রক্রিয়াটিতে ক্লায়েন্টে কোনো গোপন তথ্য সংরক্ষণের প্রয়োজন নেই — সমস্ত প্রমাণীকরণ ক্রিপ্টোগ্রাফিক টোকেন যাচাইকরণের মাধ্যমে করা হয়।
Firebase Auth স্বয়ংক্রিয়ভাবে সেশন জীবনচক্র পরিচালনা করে। সাইন-ইন করার পরে, SDK লোকাল স্টোরেজে রিফ্রেশ টোকেন সংরক্ষণ করে এবং প্রতিটি অ্যাপ পুনরায় চালু করার সময়, নীরব সাইন-ইনের মাধ্যমে সেশন পুনরুদ্ধার করে। ডেভেলপারদের টোকেন স্টোরেজ, মেয়াদ শেষ হওয়ার পরিচালনা বা রিফ্রেশ বাস্তবায়নের প্রয়োজন নেই — Firebase Auth SDK সবকিছু করে।
FirebaseAuth.getInstance().currentUser সেশন সক্রিয় থাকলে একটি FirebaseUser অবজেক্ট ফেরত দেয়, বা ব্যবহারকারী সাইন আউট করলে null ফেরত দেয়। FirebaseUser-এ UID, ইমেল, displayName, photoUrl, phoneNumber, providerData এবং claims-এর তালিকা থাকে। প্রোফাইল আপডেট (updateProfile) করার পরে, পরিবর্তনগুলি স্বয়ংক্রিয়ভাবে সার্ভারের সাথে সিঙ্ক হয়। FirebaseUser অবজেক্টটি মেমরিতে ক্যাশে করা হয় এবং যেকোনো প্রমাণীকরণ অপারেশনে আপডেট হয়।
signInAnonymously নিবন্ধন ছাড়াই একটি অস্থায়ী ব্যবহারকারী তৈরি করে। বেনামী ব্যবহারকারীদের UID থাকে কিন্তু কোনো ইমেল, নাম বা প্রদানকারী থাকে না। এটি সেই অ্যাপগুলির জন্য দরকারী যেখানে নিবন্ধনের আগে সামগ্রী উপলব্ধ (কার্ট, পছন্দ, ইতিহাস)। যখন ব্যবহারকারী নিবন্ধন করার সিদ্ধান্ত নেয়, বেনামী অ্যাকাউন্টটি linkWithCredential-এর মাধ্যমে একটি স্থায়ী অ্যাকাউন্টের সাথে লিঙ্ক করা হয়। Spark প্ল্যানে, প্রতিদিন 10 হাজার বেনামী প্রমাণীকরণের একটি সীমা রয়েছে।
Google (2026) অনুসারে, প্রায় 40% ব্যবহারকারী বেনামীভাবে একটি অ্যাপ ব্যবহার করা শুরু করে এবং তাদের মধ্যে 25% পরে তাদের বেনামী অ্যাকাউন্ট একটি স্থায়ী অ্যাকাউন্টের সাথে লিঙ্ক করে। এর মানে হল বেনামী প্রমাণীকরণ একজন ব্যবহারকারীকে নিবন্ধিততে রূপান্তর করার সময় ডেটা হারায় না।
signOut() পদ্ধতি লোকাল সেশন সাফ করে এবং সংরক্ষিত টোকেন সরিয়ে দেয়। signOut কল করার পরে, currentUser null হয়ে যায়। delete() পদ্ধতি Firebase Auth থেকে ব্যবহারকারীর অ্যাকাউন্ট সম্পূর্ণরূপে সরিয়ে দেয় — সমস্ত লিঙ্কযুক্ত প্রদানকারী সংযোগ বিচ্ছিন্ন হয় এবং Firebase পরিষেবাগুলিতে অ্যাক্সেস ব্লক করা হয়। ব্যবহারকারী মুছে ফেলা অপরিবর্তনীয় এবং অননুমোদিত অ্যাকাউন্ট মুছে ফেলা থেকে রক্ষা করার জন্য পুনরায় প্রমাণীকরণ প্রয়োজন।
Custom Claims হল কাস্টম বৈশিষ্ট্য যা Firebase Auth ব্যবহারকারীর JWT টোকেনে যোগ করে। স্ট্যান্ডার্ড প্রোফাইল ফিল্ড (ইমেল, displayName) থেকে ভিন্ন, claims শুধুমাত্র সার্ভার সাইডে উপলব্ধ — Admin SDK-এর মাধ্যমে বা Firestore এবং Realtime Database-এর জন্য Firebase Security Rules-এ নিয়মের মাধ্যমে। Claims ক্লায়েন্টের কাছে সরাসরি দৃশ্যমান নয় তবে user.getIdTokenResult()-এর মাধ্যমে পড়া যেতে পারে।
ভূমিকা এবং অ্যাক্সেস অধিকার claims-এর সবচেয়ে সাধারণ ব্যবহারের ক্ষেত্রে। Admin SDK সার্ভারে একটি ম্যাপের মাধ্যমে “admin”, “moderator” বা “premium_user” ভূমিকা নির্ধারণের অনুমতি দেয়। এই claimsগুলি স্বয়ংক্রিয়ভাবে টোকেনে অন্তর্ভুক্ত হয় এবং অ্যাক্সেস নিয়ন্ত্রণের জন্য Firestore Security Rules-এ ব্যবহার করা যেতে পারে। Google (2026) অনুসারে, 65% Firebase প্রকল্প একটি পৃথক ভূমিকা সার্ভারের পরিবর্তে ডেটা অ্যাক্সেস পরিচালনার জন্য কাস্টম claims ব্যবহার করে।
// Admin SDK (Node.js) — ব্যবহারকারীকে claims নির্ধারণ করা
const admin = require("firebase-admin")
await admin.auth().setCustomUserClaims(uid, {
role: "premium",
tier: "pro",
maxProjects: 50
})
// ক্লায়েন্টে claims পড়া
val claims = FirebaseAuth.getInstance()
.currentUser?.getIdTokenResult(true)
?.await()?.claims
কাস্টম claims-এর সীমাবদ্ধতা রয়েছে: প্রতি ব্যবহারকারীর জন্য সম্পূর্ণ JSON claims অবজেক্টের জন্য সর্বাধিক 1000 বাইট, অবজেক্টে 20টির বেশি কী নয়। Claims গতিশীল ডেটা সংরক্ষণের জন্য ডিজাইন করা হয়নি — এগুলি শুধুমাত্র Admin SDK-এর মাধ্যমে আপডেট করা হয় এবং রিয়েল টাইমে সিঙ্ক হয় না। Claims আপডেট করার পরে, ব্যবহারকারীকে টোকেন রিফ্রেশ করতে হবে (getIdTokenResult(true)) বা অ্যাপে পুনরায় লগইন করতে হবে। Claims ক্লায়েন্টে ক্যাশে করা হয় না — প্রতিটি নতুন লগইন সার্ভার থেকে একটি আপ-টু-ডেট টোকেন পায়।
Firebase Auth বহু-স্তরের অ্যাকাউন্ট সুরক্ষা প্রয়োগ করে: ট্রাফিক এনক্রিপশন (TLS 1.3), পাসওয়ার্ড হ্যাশিং (bcrypt, কস্ট 10), Adaptive Pricing-এর সাথে ব্রুট-ফোর্স সুরক্ষা (সন্দেহজনক কার্যকলাপে স্বয়ংক্রিয় প্রতিক্রিয়া ধীর করা), এবং ওয়েব সাইন-ইনের জন্য reCAPTCHA একীকরণ। অতিরিক্তভাবে, Firebase Auth সন্দেহজনক কার্যকলাপে অ্যাকাউন্ট নিষ্ক্রিয় করে — বিভিন্ন IP থেকে গণ লগইন, ভুল পাসওয়ার্ড প্রচেষ্টা এবং সন্দেহজনক ইমেল ঠিকানা।
Account Lockout — ব্যর্থ সাইন-ইন প্রচেষ্টার একটি নির্দিষ্ট সংখ্যার পরে স্বয়ংক্রিয় অ্যাকাউন্ট লকআউট। থ্রেশহোল্ড Firebase কনসোলে কনফিগারযোগ্য (ডিফল্ট 10 প্রচেষ্টা)। Email Enumeration Protection — ইমেল ঠিকানা গণনার বিরুদ্ধে সুরক্ষা। সক্ষম হলে, Firebase বিদ্যমান এবং অস্তিত্বহীন উভয় ইমেলের জন্য একই ত্রুটি ফেরত দেয়। Trusted Domains — সেটিংসে নির্দিষ্ট ইমেল ডোমেইন সহ ব্যবহারকারীদের জন্য সাইন-ইন সীমাবদ্ধ করা।
অতিরিক্ত কাস্টম প্রমাণীকরণ Custom Tokens — Firebase পরিষেবা অ্যাকাউন্ট দ্বারা স্বাক্ষরিত JWT ব্যবহার করে তৈরি করা যেতে পারে। ক্লায়েন্ট কাস্টম টোকেন signInWithCustomToken()-এ পাস করে, Firebase স্বাক্ষর যাচাই করে এবং একটি সেশন তৈরি করে। এটি ব্যবহারকারী ডেটাবেস ডুপ্লিকেট না করেই Firebase Auth-কে বিদ্যমান সার্ভার-সাইড প্রমাণীকরণের (যেমন, আপনার নিজস্ব OAuth 2.0 সার্ভার) সাথে সংহত করার অনুমতি দেয়। টোকেন 1 ঘন্টা স্থায়ী হয়, তারপরে SDK একটি Firebase রিফ্রেশ টোকেনের মাধ্যমে স্বয়ংক্রিয়ভাবে সেশন রিফ্রেশ করে।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
Firebase Auth Spark এবং Blaze উভয় প্ল্যানেই সমস্ত প্রদানকারীর জন্য সম্পূর্ণ বিনামূল্যে। সীমা: প্রতিদিন 10 হাজার বেনামী নিবন্ধন (Spark) এবং মাসে 10 হাজার SMS যাচাইকরণ (Spark)।
linkWithCredential ব্যবহার করুন — একটি পদ্ধতি যা বর্তমান বেনামী বা ইমেল ব্যবহারকারীর সাথে একটি নতুন প্রদানকারী লিঙ্ক করে। ব্যবহারকারী Google-এর মাধ্যমে সাইন ইন করে এবং তারপর linkWithCredential-এর মাধ্যমে তার ইমেল লিঙ্ক করে।
Firebase Auth-এর সাইন-ইনের জন্য ইন্টারনেট প্রয়োজন কিন্তু সেশনটি স্থানীয়ভাবে ক্যাশে করে। সাইন-ইন করার পরে, টোকেন রিফ্রেশের প্রয়োজন না হওয়া পর্যন্ত অ্যাপটি অফলাইন মোডে কাজ করে (প্রতি ঘন্টায় একবার)।
Firebase কনসোলে, Authentication বিভাগে যান, ব্যবহারকারী খুঁজুন এবং “Revoke Tokens”-এ ক্লিক করুন। সমস্ত সক্রিয় ব্যবহারকারী সেশন 30 মিনিটের মধ্যে অবৈধ হয়ে যাবে।
কনসোল বা Admin SDK-এর মাধ্যমে অ্যাকাউন্ট মুছে ফেলা সমস্ত Firebase পরিষেবাগুলিতে অ্যাক্সেস অবিলম্বে ব্লক করে। টোকেন কাজ করা বন্ধ করে দেয়। Firestore, Realtime Database এবং Storage-এর ডেটা স্বয়ংক্রিয়ভাবে মুছে ফেলা হয় না।
সারাংশ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন