Asosiy kontentga o‘tish
Innovialabs

Ilovada avtorizatsiya: SMS-kod, Apple va Google orqali kirish

Amaliyot3 daq

Qisqacha

O‘zbekiston va MDHdagi ilova uchun oqilona asosiy to‘plam — telefon raqami va SMS-kod orqali kirish hamda Google va Apple; tokenlar Keychain/Keystore’da saqlanadi, sessiya refresh token orqali uzaytiriladi.

Qisqa javob

Universal usul yo‘q, lekin O‘zbekiston va MDHdagi ko‘pchilik ilovalar uchun ishlaydigan standart to‘plam quyidagicha:

  • Telefon raqami + bir martalik kod — asosiy kirish, chunki telefon hammada bor va u biznesga ko‘pincha baribir kerak (yetkazib berish, kuryer qo‘ng‘irog‘i).
  • Sign in with Google va Sign in with Apple — kod kiritishni istamaganlar uchun bir teginishda kirish.
  • Qisqa muddatli access token va uzoq muddatli refresh token, tizimning himoyalangan xotirasida saqlanadi.

Qolgani — ko‘pincha xato qilinadigan tafsilotlar.

Kirish usullarini solishtirish

UsulAfzalliklariKamchiliklari
SMS-kodOdatiy, telefon darhol tasdiqlanadiPullik SMS, yetkazishdagi kechikishlar, firibgarlik
GoogleAndroid’da bir teginish, parolsizHar bir iOS foydalanuvchisida Google akkaunti yo‘q
AppleiOS’da bir teginish, email’ni yashirish mumkinTelefon raqami yo‘q, email proksi bo‘lishi mumkin
Email + parolTashqi bog‘liqliklarsizUnutilgan parollar, ko‘proq noqulaylik
Email orqali magic linkParolsizPochta va ilova o‘rtasida almashish noqulay

Apple’ning Sign in with Apple qoidasi

Agar iOS ilovada uchinchi tomon xizmatlari (Google, Facebook va h.k.) orqali kirish bo‘lsa, App Store Review Guidelines maxfiylikka yo‘naltirilgan teng qiymatli variantni ham taklif qilishni talab qiladi: u faqat ism va email’ni yig‘adi, email’ni yashirish imkonini beradi va reklama trekingi uchun ishlatilmaydi. Sign in with Apple bu talablarga mos keladi, shuning uchun amalda uni Google yoniga qo‘shishadi.

Qoida faqat kompaniyaning o‘z akkauntlari orqali kiriladigan ilovalarga (masalan, telefon + SMS), shuningdek ayrim korporativ va ta’limiy ssenariylarga tegishli emas. Aniq ifodalar o‘zgarib turadi — Apple qo‘llanmasining 4.8-bo‘limining joriy versiyasini tekshiring.

Unutiladigan yana ikki talab:

  • Ilovada akkauntni o‘chirish imkoniyati bo‘lishi kerak.
  • Apple orqali kirishda foydalanuvchi ismi faqat birinchi avtorizatsiyada keladi — uni darhol serverda saqlang.

SMS-kod: narx va firibgarlik

Har bir SMS pul turadi, narx esa mamlakat, operator va agregatorga bog‘liq. Asosiy xavf — SMS pumping: botlar egalari trafikdan ulush oladigan raqamlarga ommaviy ravishda kod so‘raydi. Hisobni siz to‘laysiz.

Qanday himoyalanish mumkin:

  • Raqam, qurilma va IP bo‘yicha limitlar: ma’lum oraliqda bir necha so‘rovdan ko‘p emas, takrorlar orasidagi pauza o‘sib boradi.
  • Mamlakatlar oq ro‘yxati. Agar faqat O‘zbekistonda ishlasangiz, boshqa kodlarga SMS yubormang.
  • Qurilma yaxlitligini tekshirish — Android’da Play Integrity va iOS’da App Attest — so‘rovlar haqiqiy ilovadan kelishi uchun.
  • Monitoring: yuborishlar keskin o‘sganda yoki tasdiqlangan kodlar ulushi past bo‘lganda ogohlantirish.
  • Muqobil kanallar: kodni messenjer yoki flash call orqali yetkazish arzonroq bo‘lishi mumkin, lekin SMS’ni zaxira yo‘l sifatida qoldiring.

Kodning o‘zi: 4-6 raqam, amal qilish muddati bir necha daqiqa, kiritish urinishlari soni cheklangan, serverda faqat xesh ko‘rinishida saqlanadi. SMS’dan kodni avtomatik qo‘yishni yoqing (Android’da SMS Retriever, iOS’da oneTimeCode).

Tokenlarni saqlash va sessiyani yangilash

  • Access token — qisqa muddatli, har bir so‘rov bilan yuboriladi.
  • Refresh token — uzoq muddatli, faqat yangi juftlik olish uchun ishlatiladi. Har bir yangilashda yangi refresh token bering va eskisini bekor qiling (rotation).
  • Tokenlarni iOS’da Keychain’da va Android Keystore kaliti bilan shifrlangan xotirada saqlang. Flutter’da buning uchun flutter_secure_storage, React Native’da react-native-keychain yoki expo-secure-store bor. Ochiq holdagi SharedPreferences, UserDefaults yoki AsyncStorage’dan foydalanmang.
  • Tokenni bitta so‘rov bilan yangilang: bir nechta chaqiruv bir vaqtda 401 olsa, qolganlari birinchi yangilash natijasini kutadi.
  • Serverda qurilmalar bo‘yicha sessiyalar ro‘yxatini saqlang — foydalanuvchi barcha qurilmalardan chiqa olsin, siz esa o‘g‘irlangan tokenni bekor qila oling.

Ko‘p uchraydigan xatolar

  • SMS’ni limitlarsiz va mamlakat tekshiruvisiz yuborish.
  • Tokenlarni himoyalanmagan xotirada saqlash.
  • Akkauntlarni bog‘lamaslik: odam Google orqali, keyin telefon orqali kirib, ikkita profilga ega bo‘ladi.
  • Foydalanuvchi ilova foydasini ko‘rmasidan oldin kirishni talab qilish.

Ko‘p beriladigan savollar

Faqat iOS ilovada Google kabi uchinchi tomon xizmatlari orqali kirish bo‘lsa. Agar kirish faqat telefon raqami yoki o‘z akkauntingiz orqali bo‘lsa, talab odatda qo‘llanilmaydi.

Bunda yordam beramiz

O‘zingiz shug‘ullanmasdan natija olishni istasangiz — biz har kuni shu bilan shug‘ullanamiz.

Loyihani muhokama qilish

Yana o‘qing

G‘oya yoki vazifangiz bormi? Bizga aytib bering

Ish kuni davomida javob beramiz va yechim taklif qilamiz. Konsultatsiya bepul.