Firebase Auth: bu nədir, autentifikasiya metodları və giriş provayderləri

Müəllif: IT Sectr Dərc olunub: 2026-04-28 Oxuma vaxtı: 9 dəq

Firebase Auth — mobil və veb tətbiqlərdə istifadəçilərin autentifikasiyası üçün Google bulud xidmətidir, e-poçt, telefon və sosial şəbəkələr vasitəsilə hazır giriş metodları təqdim edir. SDK sessiyanın tam dövrünü idarə edir: qeydiyyat, giriş, tokenin yenilənməsi və çıxış. Google, 2026-ya görə, Firebase Auth qutudan çıxarıldıqda 10-dan çox autentifikasiya provayderini dəstəkləyir. Xidmət autentifikasiya olunmuş istifadəçilərin sayına məhdudiyyət qoyulmadan pulsuz təqdim olunur.

Əsas məqamlar

  • Firebase Auth — e-poçt, Google, Apple, Facebook, Twitter və telefon girişini dəstəkləyən vahid autentifikasiya SDK-sı.
  • Xidmət tokenləri avtomatik idarə edir, proqramçını JWT məntiqini tətbiq etməkdən azad edir.
  • FirebaseUI Auth — tətbiq markasına uyğun fərdiləşdirmə ilə hazır giriş ekranları kitabxanası.
  • Fərdi claim-lər Admin SDK vasitəsilə rol və icazələr təyin etməyə imkan verir.
  • Anonim autentifikasiya qeydiyyatsız müvəqqəti UID verir, sonradan daimi hesabla əlaqələndirmə imkanı var.

Firebase Auth nədir

Firebase Auth — Firebase SDK-nın bir hissəsi kimi təqdim olunan Google autentifikasiya backend xidmətidir. Hesab idarəetməsinin bütün server məntiqini öz üzərinə götürür: parol heşlərinin saxlanması, JWT tokenlərinin yaradılması, OAuth 2.0 və OpenID Connect axınlarının işlənməsi. Proqramçı öz auth-serverini qurmalı, refresh tokenləri idarə etməli və ya doğrulama protokollarını tətbiq etməli deyil — bunların hamısını Firebase edir.

Xidmət arxitekturası

Firebase Auth vahid istifadəçi anbarı ilə federativ arxitekturadan istifadə edir. Hər bir istifadəçi giriş provayderindən asılı olmayan unikal identifikator (UID) alır. Google və e-poçt vasitəsilə qeydiyyatdan keçərkən iki əlaqəli hesabla (providers) bir istifadəçi yaradılır. Firebase serverə əlavə sorğular olmadan klient tərəfdə hesabların əlaqələndirilməsini (account linking) avtomatik idarə edir.

Firebase Auth tokenləri UID, buraxılış vaxtı, bitmə vaxtı və fərdi claim-ləri olan payloada malik JWT (JSON Web Token)-dir. Giriş tokeni 1 saat, refresh tokeni isə qeyri-məhdud müddət yaşayır (Admin Console vasitəsilə ləğv edilə bilər). SDK Firebase xidmətlərinə hər HTTP sorğusunda tokeni avtomatik yeniləyir. Google (2026) məlumatına görə, Firebase Auth gündə 500 milyondan çox autentifikasiyaya xidmət göstərir.

Tariflər və limitlər

Firebase Auth Spark tarifində (pulsuz) və Blaze tarifində (pay-as-you-go) tamamilə pulsuzdur. Yeganə məhdudiyyət Spark-da gündə 10 min anonim autentifikasiyadır (Blaze-də limit götürülüb). E-poçt/telefon və OAuth autentifikasiyalarının limiti yoxdur. Telefon doğrulaması üçün Spark ayda 10 min doğrulama, Blaze isə istifadəyə görə ödəniş təqdim edir (10 mindən sonra hər doğrulama $0.01). Bu, Firebase Auth-u bazarda ən əlçatan həllərdən birinə çevirir.

Firebase Auth autentifikasiya provayderləri

Firebase Auth qutudan çıxarıldıqda 12 autentifikasiya provayderini dəstəkləyir. Hər bir provayder müəyyən edilmiş axınla ayrıca identifikasiya xidməti kimi tətbiq olunur — proqramçı yalnız Credential obyekti yaratmalı və onu signInWithCredential-a göndərməlidir. Firebase avtomatik olaraq istifadəçinin yeni və ya mövcud olduğunu müəyyən edir və e-poçt təkrarlanması halında hesabları əlaqələndirməyi təklif edir.

E-poçt və parol

E-poçt/Parol — Firebase serverlərində parol heşlərinin (bcrypt) saxlanması ilə əsas autentifikasiya metodu. Qeydiyyat, giriş, e-poçt vasitəsilə parolun sıfırlanması və e-poçtun təsdiqlənməsi dəstəklənir. Firebase avtomatik olaraq parolun mürəkkəbliyini yoxlayır (minimum 6 simvol) və N uğursuz cəhddən sonra girişi bloklaya bilər (brute-force-dan qorunma).

Sosial provayderlər

Google, Apple, Facebook, Twitter, Microsoft, Yahoo, GitHub — bütün OAuth 2.0 provayderləri Firebase konsolu vasitəsilə 5 dəqiqəyə konfiqurasiya olunur. Hər bir provayder üçün provayderin öz konsolunda Client ID və Client Secret əldə etmək lazımdır. Apple Sign In App Store-da tətbiqlər üçün məcburidir (Apple-ın 2020-ci ildən tələbi). Firebase Auth Apple Sign In axınını JWT doğrulaması ilə tam dəstəkləyir.

ProvayderProtokolClient Secret tələb olunur
GoogleOAuth 2.0Xeyr
AppleOAuth 2.0 + OpenIDBəli
FacebookOAuth 2.0Bəli
TwitterOAuth 1.0aBəli
GitHubOAuth 2.0Bəli

Telefon autentifikasiyası

Phone Auth — istifadəçinin telefon nömrəsinə göndərilən SMS kodu ilə autentifikasiya. Firebase kodu klaviaturadan daxil etmədən avtomatik oxumaq üçün Silent APN (iOS) və ya SMS Retriever API (Android) istifadə edir. Android-də SMS Retriever API yalnız Google Play Services olan cihazlarda işləyir. SMS-in mövcud olmadığı regionlar üçün Firebase ehtiyat olaraq reCAPTCHA doğrulamasını dəstəkləyir. Telefon autentifikasiyası nömrəyə məcburi bağlanma tələb edən tətbiqlər — yemək çatdırılması, taksi, bankçılıq üçün kritikdir.

Firebase Auth-un Android-ə inteqrasiyası

Firebase Auth-un qoşulması Android-də build.gradle-a firebase-auth-ktx asılılığının əlavə edilməsini və Firebase App-in işə salınmasını (Google Services plugin vasitəsilə avtomatik yerinə yetirilir) tələb edir. Bundan sonra FirebaseAuth obyekti statik getInstance() metodu vasitəsilə əlçatan olur — bütün tətbiq üçün sinqlton. Əlavə konfiqurasiya tələb olunmur.

groovy
// build.gradle (tətbiq səviyyəsi)
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")
}

E-poçtla istifadəçi qeydiyyatı

createUserWithEmailAndPassword — qeydiyyat üçün əsas metoddur. E-poçt və parol qəbul edir, Firebase Auth-da istifadəçi yaradır və UID ilə AuthResult obyekti qaytarır. Əgər belə e-poçtu olan istifadəçi artıq mövcuddursa, Firebase ERROR_EMAIL_ALREADY_IN_USE xətası qaytarır. Uğurlu qeydiyyatdan sonra SDK avtomatik olaraq tokeni SharedPreferences-da saxlayır və tətbiqin növbəti açılışında signIn çağırmadan sessiyanı bərpa edir.

kotlin
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 vasitəsilə giriş

Google Sign In üçün iki mərhələli proses istifadə olunur: Credential Manager (Android) və ya Google Sign-In SDK vasitəsilə ID Token əldə etmək, sonra tokeni Firebase credential-a ötürmək. Firebase tokeni öz serverində yoxlayır (imzanı Google RSA açarı ilə təsdiqləyir) və mövcud istifadəçini yaradır və ya qaytarır. Proses klientdə secret saxlamağı tələb etmir — bütün autentifikasiya tokenlərin kriptoqrafik doğrulaması ilə həyata keçirilir.

İstifadəçi və sessiya idarəetməsi

Firebase Auth sessiyanın həyat dövrünü avtomatik idarə edir. Girişdən sonra SDK refresh tokeni lokal yaddaşda saxlayır və tətbiqin hər yenidən başladılmasında signIn silently vasitəsilə sessiyanı bərpa edir. Proqramçı tokenin saxlanmasını, bitməsinin idarə edilməsini və ya yenilənməsini tətbiq etməli deyil — hamısını Firebase Auth SDK edir.

Cari istifadəçi

FirebaseAuth.getInstance().currentUser sessiya aktiv olduqda FirebaseUser obyekti, istifadəçi çıxış etdikdə isə null qaytarır. FirebaseUser UID, e-poçt, displayName, photoUrl, phoneNumber, providerData və claim-lər siyahısını ehtiva edir. Profil yenilənməsindən (updateProfile) sonra dəyişikliklər avtomatik serverlə sinxronlaşır. FirebaseUser obyekti yaddaşda keşlənir və istənilən auth əməliyyatlarında yenilənir.

Anonim autentifikasiya

signInAnonymously — qeydiyyatsız müvəqqəti istifadəçi yaradır. Anonim istifadəçilərin UID-si var, lakin e-poçtu, adı və ya provayderi yoxdur. Bu, məzmunun qeydiyyatdan əvvəl əlçatan olduğu tətbiqlər (səbət, seçilmişlər, tarixçə) üçün faydalıdır. İstifadəçi qeydiyyatdan keçmək qərarına gəldikdə, anonim hesab linkWithCredential vasitəsilə daimi hesabla əlaqələndirilir. Spark tarifində gündə 10 min anonim autentifikasiya limiti var.

Google (2026) məlumatına görə, istifadəçilərin təxminən 40%-i tətbiqlə anonim işə başlayır və onların 25%-i sonradan anonim hesabı daimi hesabla əlaqələndirir. Bu o deməkdir ki, anonim autentifikasiya istifadəçinin qeydiyyatdan keçmiş istifadəçiyə çevrilməsi zamanı məlumatları itirmir.

Çıxış və hesabın silinməsi

signOut() metodu lokal sessiyanı təmizləyir və saxlanmış tokeni silir. signOut çağırıldıqdan sonra currentUser null olur. delete() metodu istifadəçi hesabını Firebase Auth-dan tamamilə silir — bütün əlaqəli provayderlər ayrılır və Firebase xidmətlərinə giriş bloklanır. İstifadəçinin silinməsi geri qaytarıla bilməz və icazəsiz silinmədən qorunmaq üçün yenidən autentifikasiya (reauthenticate) tələb olunur.

Fərdi claim-lər və rol idarəetməsi

Custom Claims — Firebase Auth-un istifadəçinin JWT tokeninə əlavə etdiyi fərdi atributlardır. Standart profil sahələrindən (e-poçt, displayName) fərqli olaraq, claim-lər yalnız server tərəfində — Admin SDK və ya Firestore və Realtime Database üçün Firebase Security Rules-dakı qaydalar vasitəsilə əlçatandır. Claim-lər klientə birbaşa görünmür, lakin user.getIdTokenResult() vasitəsilə oxuna bilər.

Tipik istifadə ssenariləri

Rollar və giriş icazələri — claim-lərin ən çox yayılmış tətbiq ssenarisidir. Admin SDK serverdə map vasitəsilə “admin”, “moderator” və ya “premium_user” rolunu təyin etməyə imkan verir. Bu claim-lər avtomatik olaraq tokenə daxil olur və girişi məhdudlaşdırmaq üçün Firestore Security Rules-da istifadə edilə bilər. Google-a (2026) görə, Firebase layihələrinin 65%-i ayrıca rol serveri əvəzinə məlumat girişini idarə etmək üçün custom claim-lərdən istifadə edir.

kotlin
// Admin SDK (Node.js) — istifadəçiyə claim-lərin təyin edilməsi
const admin = require("firebase-admin")

await admin.auth().setCustomUserClaims(uid, {
    role: "premium",
    tier: "pro",
    maxProjects: 50
})

// Claim-lərin klient tərəfdə oxunması
val claims = FirebaseAuth.getInstance()
    .currentUser?.getIdTokenResult(true)
    ?.await()?.claims

Claim-lərin məhdudiyyətləri

Custom claims-in məhdudiyyətləri var: istifadəçi başına bütün JSON claim obyekti üçün maksimum 1000 bayt, obyektdə 20-dən çox olmayan açar. Claim-lər dinamik məlumatların saxlanması üçün nəzərdə tutulmayıb — onlar yalnız Admin SDK vasitəsilə yenilənir və real vaxtda sinxronlaşmır. Claim-lər yeniləndikdən sonra istifadəçi tokeni yeniləməli (getIdTokenResult(true)) və ya tətbiqə yenidən daxil olmalıdır. Claim-lər klient tərəfdə keşlənmir — hər yeni giriş serverdən cari token alır.

Autentifikasiya təhlükəsizliyi

Firebase Auth çoxsəviyyəli hesab qorunmasını tətbiq edir: trafikin şifrələnməsi (TLS 1.3), parol heşlənməsi (bcrypt, dəyər 10), Adaptive Pricing ilə brute-force-dan qorunma (şübhəli aktivlik zamanı cavabın avtomatik yavaşladılması) və veb giriş üçün reCAPTCHA inteqrasiyası. Əlavə olaraq Firebase Auth şübhəli aktivlik — müxtəlif IP-lərdən kütləvi girişlər, yanlış parolla giriş cəhdləri və şübhəli e-poçt ünvanları zamanı hesabları söndürür.

Qorunma metodları

Account Lockout — müəyyən sayda uğursuz giriş cəhdindən sonra hesabın avtomatik bloklanması. Hədd Firebase konsolunda konfiqurasiya olunur (standart olaraq 10 cəhd). Email Enumeration Protection — e-poçt ünvanlarının axtarışından qorunma. Aktivləşdirildikdə Firebase həm mövcud, həm də mövcud olmayan e-poçt üçün eyni xətanı qaytarır. Trusted Domains — girişin yalnız parametrlərdə göstərilən e-poçt domenləri olan istifadəçilərlə məhdudlaşdırılması.

Xüsusi tokenlərin təhlükəsizliyi

Əlavə xüsusi autentifikasiya Firebase xidmət hesabı ilə imzalanmış JWT olan Custom Tokens üzərində qurula bilər. Klient xüsusi tokeni signInWithCustomToken()-a ötürür, Firebase imzanı yoxlayır və sessiya yaradır. Bu, Firebase Auth-u mövcud server autentifikasiyası (məsələn, öz serverinin OAuth 2.0) ilə istifadəçi bazasını təkrarlamadan inteqrasiya etməyə imkan verir. Token 1 saat yaşayır, bundan sonra SDK Firebase refresh tokeni vasitəsilə sessiyanı avtomatik yeniləyir.

Tez-tez verilən suallar

Firebase Auth nə qədərdir?

Firebase Auth Spark və Blaze tariflərində bütün provayderlər üçün tamamilə pulsuzdur. Limitlər: gündə 10 min anonim qeydiyyat (Spark) və ayda 10 min SMS doğrulama (Spark).

Bir hesabla bir neçə provayderi necə əlaqələndirmək olar?

linkWithCredential — yeni provayderi cari anonim və ya e-poçt istifadəçisinə bağlayan metoddan istifadə edin. İstifadəçi Google vasitəsilə daxil olur, sonra linkWithCredential vasitəsilə e-poçtunu əlaqələndirir.

Firebase Auth-dan internet olmadan istifadə etmək olar?

Firebase Auth giriş üçün internet tələb edir, lakin sessiyanı lokal olaraq keşləyir. Girişdən sonra tətbiq tokenin yenilənməsi tələb olunana qədər (saatda bir dəfə) oflayn rejimdə işləyir.

İstifadəçinin tokenini necə ləğv etmək olar?

Firebase konsolunda Authentication bölməsinə keçin, istifadəçini tapın və “Revoke Tokens” düyməsini sıxın. İstifadəçinin bütün aktiv sessiyaları 30 dəqiqə ərzində etibarsız olacaq.

İstifadəçi silindikdə nə baş verir?

Hesabın silinməsi konsol və ya Admin SDK vasitəsilə bütün Firebase xidmətlərinə girişi dərhal bloklayır. Tokenlər işləməyi dayandırır. Firestore, Realtime Database və Storage-dəki məlumatlar avtomatik silinmir.

Nəticə

  • Firebase Auth — Android, iOS və Web üçün vahid SDK ilə Google bulud autentifikasiya xidməti.
  • Qutudan çıxarıldıqda 12 provayderi dəstəkləyir: e-poçt, telefon, Google, Apple, Facebook, Twitter və digərləri.
  • SDK JWT tokenlərini avtomatik idarə edir — saxlama, yeniləmə, yenidən başlatmada sessiyanın bərpası.
  • Admin SDK vasitəsilə Custom claims ayrıca server olmadan rol əsaslı giriş modelini tətbiq etməyə imkan verir.
  • Anonim autentifikasiya daimi hesabla əlaqələndirmə imkanı ilə müvəqqəti UID verir.
  • Android-ə inteqrasiya əlavə konfiqurasiya olmadan bir asılılıq firebase-auth-ktx tələb edir.
  • Xidmət brute-force, e-poçt axtarışı və şübhəli hesabların avtomatik bloklanmasına qarşı daxili qoruma ehtiva edir.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun