Google Sign-In: bu nima, Google orqali kirish va OAuth 2.0 SDK

Muallif: IT Sectr Nashr etilgan: 2026-04-29 O'qish vaqti: 10 daq

Google Sign-In — bu Google tomonidan mobil va veb-ilovalarda foydalanuvchilarni Google hisoblari orqali autentifikatsiya qilishni amalga oshiradigan SDK. Texnologiya asosida OAuth 2.0 protokoli yotadi, u uchinchi tomon ilovasiga parolni uzatmasdan Google API ga kirish tokenlarini olish imkonini beradi. 3 milliarddan ortiq Android qurilmalari Google Sign-In ni qo‘llab-quvvatlaydi, bu uni mobil ilovalarda eng keng tarqalgan kirish usuliga aylantiradi. Google Identity Platform, 2025 ma’lumotlariga ko‘ra, SDK integrasiyasi ro‘yxatdan o‘tish vaqtini 60% qisqartiradi va foydalanuvchi konversiyasini oshiradi.

Asosiy

  • Google Sign-In — OAuth 2.0 asosida Google hisobi orqali autentifikatsiya SDK si
  • OAuth 2.0 — ilova foydalanuvchi parolisiz kirish tokenini oladigan avtorizatsiya protokoli
  • Credential Manager — WebViewsiz Google orqali kirish uchun zamonaviy Android API
  • ID Token — foydalanuvchining identifikatsiya ma’lumotlarini o‘z ichiga olgan JSON Web Token (JWT)
  • Platformalararo — Google Sign-In Android, iOS, veb va desktop platformalarida ishlaydi

Google Sign-In nima?

Google Sign-In — bu Google tomonidan uchinchi tomon ilovalarida foydalanuvchilarni autentifikatsiya qilish uchun taqdim etiladigan yagona kirish xizmati (Single Sign-On). SDK dasturchilarga o‘z ro‘yxatdan o‘tish tizimini yaratmasdan Google hisobi orqali kirishni integratsiya qilish imkonini beradi. Texnologiya OAuth 2.0 va OpenID Connect protokollariga asoslanadi, foydalanuvchi haqida identifikatsiya ma’lumotlarini olishni ta’minlaydi: ism, email, avatar va noyob identifikator.

An’anaviy email va parol orqali autentifikatsiyadan farqli o‘laroq, Google Sign-In parollarni yodda saqlash va ro‘yxatdan o‘tish tartibidan o‘tish zaruriyatini bartaraf etadi. Foydalanuvchi qurilmada Google hisobini tanlaydi, ruxsatlarni tasdiqlaydi va ilova kirish tokenini oladi. Google Identity Platform (2025) ma’lumotlariga ko‘ra, Google Sign-In li ilovalar email/parol shakliga nisbatan 52% ko‘proq muvaffaqiyatli ro‘yxatdan o‘tishni ko‘rsatadi.

Google Sign-In uchta foydalanish stsenariysini qo‘llab-quvvatlaydi: foydalanuvchi autentifikatsiyasi (ID Token olish), Google API ga kirish uchun avtorizatsiya (Access Token olish) va avval avtorizatsiya qilingan foydalanuvchilar uchun muammosiz autentifikatsiya (Silent Sign-In). Har bir stsenariy turli xil ruxsatlar (scopes) to‘plamini talab qiladi va turli xil token turlarini qaytaradi.

OAuth 2.0 Google Sign-In da qanday ishlaydi

OAuth 2.0 — bu ilovaga foydalanuvchining hisob ma’lumotlarini oshkor qilmasdan uning resurslariga cheklangan kirishni olish imkonini beradigan avtorizatsiya protokolidir. Google Sign-In kontekstida protokol quyidagicha ishlaydi: ilova foydalanuvchidan Google orqali avtorizatsiyani so‘raydi, vaqtinchalik avtorizatsiya kodini oladi, uni kirish tokenlariga almashtiradi va bu tokenlardan Google API ga chaqiruv qilish uchun foydalanadi.

OAuth 2.0 ning oldingi protokollardan asosiy farqi — resurs egasi (foydalanuvchi), mijoz (ilova), avtorizatsiya serveri (Google) va resurs serveri (Google API) o‘rtasida rollarning bo‘linishidir. Ilova hech qachon foydalanuvchi parolini olmaydi — faqat bekor qilinishi mumkin bo‘lgan tokenni oladi. Google Identity Platform OAuth 2.0 ustida OpenID Connect spetsifikatsiyasidan foydalanadi va JWT formatida standartlashtirilgan ID Token qo‘shadi.

ID Token va Access Token: farqlar

kotlin
// Credential Manager orqali ID Token olish namunasi
val googleIdOption = GoogleIdCredentialOption.Builder()
    .setServerClientId(serverClientId)
    .build()

val credentialManager = CredentialManager.create(this)
val request = GetCredentialRequest.Builder()
    .addCredentialOption(googleIdOption)
    .build()

credentialManager.getCredential(request)
    .addOnSuccessListener { result ->
        val credential = result.credential as GoogleIdCredential
        Log.d("SignIn", credential.idToken)
    }

ID Token (JWT) uch segmentdan iborat: imzo algoritmi bilan sarlavha, foydalanuvchi ma’lumotlari bilan payload (sub, email, name, picture) va tekshirish uchun imzo. Ilovaning server qismi Google ning ochiq kalitlaridan foydalanib ID Token imzosini tekshiradi va foydalanuvchi identifikatorini chiqaradi. Ushbu yondashuv, agar mijoz ilovasi buzilgan taqdirda ham, tajovuzkor Google ning shaxsiy kalitiga kirishsiz tokenni soxtalashtira olmasligini kafolatlaydi.

Credential Manager: Android da yangi kirish usuli

Credential Manager — bu 2023 yilda taqdim etilgan, barcha autentifikatsiya usullarini (Google Sign-In, parol orqali kirish, Passkeys) yagona foydalanuvchi interfeysida birlashtirgan zamonaviy Android API. Eski GoogleSignInClient dan farqli o‘laroq, Credential Manager kirish uchun WebView talab qilmaydi — mahalliy Bottom Sheet ishlatiladi, bu autentifikatsiyani tezlashtiradi va foydalanuvchi tajribasini yaxshilaydi.

Credential Manager ning asosiy afzalligi — barcha turdagi hisob ma’lumotlari uchun yagona UX. Foydalanuvchi bitta dialog oynasini ko‘radi va u yerda tanlashi mumkin: Google orqali kirish, Passkey ishlatish yoki parolni kiritish. Dasturchi turli autentifikatsiya oqimlarini boshqarishi shart emas — Credential Manager Google Sign-In, Smart Lock va Passkeys bilan o‘zaro aloqani abstraksiya qiladi. Google Android 14+ uchun Credential Manager ni Google Sign-In integrasiyasining asosiy usuli sifatida tavsiya qiladi.

ParametrGoogleSignInClient (eskirgan)Credential Manager
Minimal APIAndroid 4.4 (API 19)Android 4.4 (API 19)
InterfeysWebView / BottomSheetMahalliy BottomSheet
Passkeys qo‘llab-quvvatlashiYo‘qHa
SDK hajmi~500 KB~150 KB
StatusDeprecated (2024)Google tomonidan tavsiya etiladi

GoogleSignInClient dan Credential Manager ga migratsiya

Migratsiya GoogleSignInClient dan Credential Manager ga mijoz mantiqini o‘zgartirishni talab qiladi: GoogleSignInOptions o‘rniga GoogleIdCredentialOption ishlatiladi, GoogleSignIn.getSignedInAccountFromIntent o‘rniga esa GetCredentialResponse orqali natijani qayta ishlash. Server qismi o‘zgarishni talab qilmaydi, chunki ID Token bir xil JWT formatida qoladi. Google I/O 2024 ma’lumotlariga ko‘ra, Google Play dagi ilovalarning taxminan 40% allaqachon Credential Manager ga o‘tgan.

Android loyihasida Google Sign-In sozlash

Google Sign-In ni Android ilovasida integratsiya qilish Google Cloud Console da loyihani sozlash bilan boshlanadi. Birinchi qadam — Android uchun OAuth 2.0 Client ID yaratish: buning uchun ilovaning package name va imzo sertifikatining SHA-1 ko‘rsatiladi. Google bu ma’lumotlardan autentifikatsiya so‘rovi aynan sizning ilovangizdan kelganligini, soxta mijozdan emasligini tekshirish uchun foydalanadi.

Google Cloud Console da mijozni yaratgandan so‘ng, dasturchi build.gradle ga Credential Manager bog‘liqligini qo‘shadi va GoogleIdCredentialOption ni serverClientId bilan sozlaydi. Muhim: serverClientId — bu ID Token ni tekshirish uchun server qismi tomonidan ishlatiladigan xuddi shu Google Cloud loyihasidagi veb-ilovaning Client ID sidir. Mijoz ilovasi tokenni tekshirmaydi — faqat oladi va serverga uzatadi.

kotlin
// build.gradle (app) dependencies
implementation("androidx.credentials:credentials:1.5.0")
implementation("androidx.credentials:credentials-play-services-auth:1.5.0")
implementation("com.google.android.libraries.identity.googleid:googleid:1.1.0")

// Credential Manager orqali Google Sign-In so‘rovi
suspend fun requestGoogleSignIn(context: Context): String? {
    val credentialManager = CredentialManager.create(context)
    val googleIdOption = GoogleIdCredentialOption.Builder()
        .setServerClientId(BuildConfig.SERVER_CLIENT_ID)
        .setAutoSelectEnabled(true)
        .build()

    val result = credentialManager.getCredential(
        context as Activity,
        GetCredentialRequest.Builder()
            .addCredentialOption(googleIdOption)
            .build()
    )
    return (result.credential as GoogleIdCredential).idToken
}

Mijozda ID Token ni olgandan so‘ng, ilova uni tekshirish va sessiya yaratish uchun o‘z serveriga yuboradi. Server Google ning ochiq kalitlaridan (https://www.googleapis.com/oauth2/v3/certs manzilida mavjud) foydalanib JWT imzosini, tokenning amal qilish muddatini (exp) va aud maydoni qiymatini tekshiradi — serverClientId bilan mos kelishi kerak. Tekshirishdan so‘ng server o‘z sessiyasini yaratadi, masalan, ichki JWT yoki Session Token chiqaradi.

iOS da Google Sign-In: sozlash va xususiyatlar

Google Sign-In ni iOS da integratsiya qilish CocoaPods yoki Swift Package Manager orqali mavjud bo‘lgan GoogleSignIn-iOS SDK orqali amalga oshiriladi. Sozlash jarayoni Google Cloud Console da iOS uchun Client ID yaratishni (Bundle Identifier bilan), qayta chaqiruv uchun URL Scheme qo‘shishni va autentifikatsiyadan keyin Google tomonidan qaytarilgan URL ni boshqarish uchun AppDelegate sozlashni o‘z ichiga oladi.

iOS Google Sign-In versiyasining Android dan muhim farqi — URL Scheme va Info.plist sozlash zaruriyati. Google SDK qayta chaqiruv uchun Universal Links dan foydalanadi, ammo fallback uchun `com.googleusercontent.apps.[CLIENT_ID]` ko‘rinishidagi URL Scheme talab qilinadi. Shuningdek, ilova ishga tushirishlari orasida refresh token ni saqlash uchun Keychain Sharing sozlash talab qilinadi. Google Identity hujjatlariga ko‘ra, iOS SDK iOS 15 va undan yuqori versiyalarni qo‘llab-quvvatlaydi.

swift
// iOS da Google Sign-In sozlash
import GoogleSignIn

class SignInManager: ObservableObject {
    func signIn(presenting viewController: UIViewController) {
        GIDSignIn.sharedInstance.signIn(
            withPresenting: viewController
        ) { signInResult, error in
            guard let result = signInResult else {
                print("Sign in failed: \(error)")
                return
            }
            let idToken = result.user.idToken.tokenString
            // ID Token ni serverga yuborish
            sendTokenToBackend(idToken)
        }
    }
}

iOS da Google Sign-In avval avtorizatsiya qilingan foydalanuvchilar uchun Silent Sign-In ni qo‘llab-quvvatlaydi. restorePreviousSignIn metodi, agar refresh token Keychain da saqlangan bo‘lsa, sessiyani avtomatik tiklaydi. Bu, ayniqsa, foydalanuvchi har safar qayta kirmasligi kerak bo‘lgan ilovalar uchun muhimdir. Google ma’lumotlariga ko‘ra, Silent Sign-In faol Google sessiyasi bo‘lgan qurilmalarda 85% hollarda muvaffaqiyatli bo‘ladi.

Tokenlar bilan ishlash va xavfsizlik

Xavfsizlik Google Sign-In uch darajaga asoslanadi: mijoz tekshiruvi (ilovaning SHA-1 imzosi), transport shifrlash (HTTPS/TLS) va JWT ning kriptografik imzosi. Google dan olingan ID Token RS256 algoritmi (RSA SHA-256 bilan) yordamida imzolanadi. Ilovaning server qismi token imzosini, amal qilish muddatini va issuer (iss) ni tekshirishi kerak — faqat accounts.google.com.

Access Token — bu vaqtinchalik token (1 soat yashaydi), Google API ga (Google Drive, Google Calendar, YouTube va h.k.) kirish imkonini beradi. ID Token dan farqli o‘laroq, Access Token foydalanuvchi haqida ma’lumotni o‘z ichiga olmaydi — bu Google API serveri so‘rovni avtorizatsiya qilish uchun ishlatadigan opaque qatordir. Refresh Token — foydalanuvchi qayta kirmasdan yangi Access Token olish imkonini beruvchi uzoq muddatli tokendir. Refresh Token faqat birinchi kirishda chiqariladi va foydalanuvchi tomonidan Google hisobi sozlamalarida bekor qilinishi mumkin.

kotlin
// Serverda ID Token ni qayta ishlash namunasi (psevdokod)
fun verifyGoogleToken(idToken: String): User? {
    val verifier = GoogleIdTokenVerifier.Builder(
        NetHttpTransport(), GsonFactory.getDefaultInstance()
    ).setAudience(listOf(CLIENT_ID))
     .build()

    val token = verifier.verify(idToken) ?: return null
    val payload = token.payload

    return User(
        id = payload.subject,
        email = payload.email,
        name = payload.get("name") as String
    )
}

Refresh Token va sessiyani boshqarish

Xavfsizlik bo‘yicha tavsiyalar: ID Token ni hech qachon himoyalanmagan kanallar orqali uzatmang, serverga barcha so‘rovlar uchun HTTPS dan foydalaning, tokenning amal qilish muddatini (exp maydoni) va issuer (iss) ni tekshiring. Mijozda tokenlarni shifrlashsiz SharedPreferences da saqlamang — EncryptedSharedPreferences yoki Android Keystore dan foydalaning. Google Sign-In server-server autentifikatsiyasi uchun mo‘ljallanmagan — buning uchun Service Accounts ishlatiladi.

Kod namunasi: Kotlin da Google Sign-In integrasiyasi

Credential Manager va ViewModel yordamida Android ilovasida Google Sign-In integrasiyasining to‘liq namunasi. Ilova kirish tugmasini ko‘rsatadi, autentifikatsiyadan so‘ng ID Token ni serverga yuboradi va foydalanuvchi haqida ma’lumotni ko‘rsatadi. Kod Credential Manager bilan asinxron ishlash uchun koroutinlardan foydalanadi.

kotlin
class SignInViewModel: ViewModel() {
    private val cm = CredentialManager.create(getApplication())

    private val googleOption = GoogleIdCredentialOption.Builder()
        .setServerClientId(BuildConfig.SERVER_CLIENT_ID)
        .build()

    suspend fun signIn(): SignInResult {
        return try {
            val response = cm.getCredential(
                GetCredentialRequest.Builder()
                    .addCredentialOption(googleOption)
                    .build()
            )
            val credential = response.credential as GoogleIdCredential
            SignInResult.Success(credential.idToken)
        } catch (e: GetCredentialCancellationException) {
            SignInResult.Cancelled
        }
    }
}

sealed class SignInResult {
    data class Success(val idToken: String) : SignInResult()
    data class Error(val message: String) : SignInResult()
    data class Cancelled : SignInResult()
}

Muvaffaqiyatli autentifikatsiyadan so‘ng ilova ID Token ni tekshirish va sessiya yaratish uchun o‘z serveriga yuborishi kerak. HTTPS dan foydalanish va tokenni POST so‘rovining tanasida uzatish tavsiya etiladi. Server mijoz EncryptedSharedPreferences da saqlaydigan o‘z sessiya tokenini qaytaradi. Serverga har bir keyingi so‘rovda ichki token ishlatiladi, Google ID Token emas.

Integrasiyadagi odatiy xatolar va ularning yechimi

Birinchi keng tarqalgan xato — sertifikat SHA-1 ning mos kelmasligi. Google Cloud Console OAuth 2.0 Client ID ni imzo sertifikatining SHA-1 iziga bog‘laydi. Agar ilova debug kaliti bilan yig‘ilsa, ammo Client ID release kaliti uchun yaratilgan bo‘lsa, Google Sign-In 12501 (SIGN_IN_FAILED) xatosini qaytaradi. Yechim — Google Cloud Console ga ikkala SHA-1 (debug va release) ni qo‘shing yoki rivojlanish uchun bitta Client ID va ishlab chiqarish uchun alohida Client ID dan foydalaning.

Ikkinchi tez-tez uchraydigan muammo — noto‘g‘ri serverClientId. Dasturchilar ko‘pincha Credential Manager ning serverClientId parametrida veb-ilova Client ID o‘rniga Android Client ID dan foydalanadilar. Google server tekshiruvi uchun mo‘ljallangan ID Token ni yaratish uchun aynan veb-client ID ni talab qiladi. Android Client ID faqat autentifikatsiya jarayonida ilovani identifikatsiya qilish uchun ishlatiladi. serverClientId ning Google Cloud Console dagi veb-ilovaga mos kelishini tekshiring.

Uchinchi xato — bekor qilishni boshqarishni e‘tiborsiz qoldirish. Foydalanuvchi autentifikatsiyani yakunlamasdan Google Sign-In dialogini yopishi mumkin. Credential Manager boshqa xatolardan alohida boshqarilishi kerak bo‘lgan GetCredentialCancellationException ni chiqaradi. Ko‘pgina dasturchilar barcha istisnolarni xato sifatida boshqaradi va foydalanuvchiga “Kirish muvaffaqiyatsiz tugadi” xabarini ko‘rsatadi, holbuki foydalanuvchi oddiygina operatsiyani bekor qilgan. To‘g‘ri boshqarish: Cancelled da — hech narsani ko‘rsatmang, shunchaki boshlang‘ich holatga qayting.

Tez-tez beriladigan savollar

2026 yilda Google Sign-In SDK ning qaysi versiyasidan foydalanish kerak?

Android uchun Credential Manager (AndroidX Credentials) va iOS uchun Swift Package Manager orqali GIDSignIn SDK dan foydalanish tavsiya etiladi. Credential Manager — Google tomonidan qo‘llab-quvvatlanadigan, Google Sign-In, Passkeys va parol orqali kirishni yagona interfeysda birlashtirgan zamonaviy API. Eskirgan GoogleSignInClient (com.google.android.gms:auth) endi foydalanish uchun tavsiya etilmaydi.

Google Sign-In da ID Token va Access Token o‘rtasidagi farq nima?

ID Token — foydalanuvchi haqida ma’lumot (ism, email, noyob ID) ni o‘z ichiga olgan JWT. Ilovaning server tomonida autentifikatsiya uchun ishlatiladi. Access Token — Google API ga (Google Drive, Calendar) kirish uchun opaque qator. ID Token 1 soat yashaydi, Access Token ham 1 soat yashaydi, ammo Refresh Token orqali yangilanishi mumkin.

Google Sign-In server tekshiruvisiz ishlatilishi mumkinmi?

Texnik jihatdan mumkin, ammo bu xavfsiz emas. Agar ID Token faqat mijozda tekshirilsa, tajovuzkor ilovani dekompilyatsiya qilishi va tekshirish mantiqini chiqarib olishi mumkin. Google ning ochiq kalitlaridan foydalangan holda server tekshiruvi tokenning haqiqatan ham Google tomonidan chiqarilganligini va soxtalashtirilmaganligini kafolatlaydi. Serversiz ilovalar uchun Firebase Authentication dan foydalaning.

Nega Google Sign-In 12501 xatosini qaytaradi?

12501 (SIGN_IN_FAILED) xatosi ilova sertifikatining SHA-1 Google Cloud Console da ko‘rsatilganga mos kelmaganda yuz beradi. Yechim: konsolga debug sertifikatidan (Android Studio dan) va release sertifikatidan SHA-1 qo‘shing. Shuningdek, konsoldagi package name ning build.gradle bilan mos kelishini tekshiring. O‘zgartirishdan so‘ng tarqalish uchun 24 soatgacha vaqt kerak bo‘lishi mumkin.

Google Sign-In internetsiz kirishni qo‘llab-quvvatlaydimi?

Yo‘q, Google Sign-In Google serverlari bilan aloqa qilish uchun internet ulanishini talab qiladi. Agar qurilma oflayn bo‘lsa, sessiya keshlash mexanizmidan foydalaning: muvaffaqiyatli kirishdan so‘ng tokenni EncryptedSharedPreferences da saqlang va keyingi ishga tushirishda uning amal qilishini tekshiring. Tarmoq bo‘lmaganda saqlangan ma’lumotlarni ko‘rsating va keyinroq kirishni taklif qiling.

Xulosalar

  • Google Sign-In — OAuth 2.0 va OpenID Connect asosida Google hisobi orqali autentifikatsiya SDK si
  • OAuth 2.0 — ilova foydalanuvchi parolini uzatmasdan kirish tokenini oladigan protokol
  • Credential Manager — mahalliy Bottom Sheet va Passkeys qo‘llab-quvvatlashi bilan Google Sign-In uchun zamonaviy Android API
  • ID Token — server Google ning ochiq kalitlari bilan tekshiradigan foydalanuvchi ma’lumotlari bo‘lgan JWT
  • Xavfsizlik ilovaning SHA-1 imzosi, HTTPS va JWT ning kriptografik tekshiruviga asoslanadi
  • iOS integrasiyasi URL Scheme, Keychain Sharing va Swift Package Manager orqali GoogleSignIn SDK sozlashni talab qiladi
  • Tez-tez xatolar — SHA-1 mos kelmasligi, noto‘g‘ri serverClientId va CancellationException ni e‘tiborsiz qoldirish

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing