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 प्रदाताओं को Firebase कंसोल के ज़रिए 5 मिनट में कॉन्फ़िगर किया जा सकता है। प्रत्येक प्रदाता के लिए, आपको प्रदाता के स्वयं के कंसोल से Client ID और Client Secret प्राप्त करने की आवश्यकता है। Apple Sign In App Store एप्लिकेशन के लिए अनिवार्य है (Apple की आवश्यकता 2020 से)। 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 एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें