Yeni bir cihaz kurarken uygulama kimlik bilgilerini geri yükleme

Kimlik Bilgisi Yöneticisi'nin Kimlik Bilgilerini Geri Yükle özelliği, kullanıcıların yeni bir cihaz kurarken uygulama hesaplarını geri yüklemelerine olanak tanır. Bu API, geliştirici önizleme aşamasındadır ve Android 9 veya sonraki sürümlerin yüklü olduğu ve Google Play Hizmetleri (GMS) Core sürümü 242200000 ya da sonraki sürümlerin bulunduğu tüm cihazlarda kullanılabilir. Kimlik bilgilerini geri yükleme özelliğinin avantajları şunlardır:

  • Sorunsuz kullanıcı deneyimi: Kullanıcılar, her uygulamada manuel olarak oturum açmak zorunda kalmadan uygulama hesaplarını geri yükleyebilir.
  • Kullanıcı etkileşiminde artış: Kullanıcılar, yeni bir cihazı kurarken hesaplarını geri yükleyebiliyorlarsa uygulamanızı kullanmaya devam etme olasılıkları daha yüksektir.
  • Daha az geliştirme çabası: Yeterlik bilgilerini geri yükleme özelliği, Yeterlik Bilgileri Yöneticisi'ne entegre edildiğinden geçiş anahtarlarını zaten destekleyen geliştiriciler, yeterlik bilgilerini geri yükleme özellikleri ekleyebilir.

İşleyiş şekli

İlgili kimlik bilgilerini oluşturmak, almak ve temizlemek için Kimlik Bilgilerini Geri Yükle'yi kullanabilirsiniz.

  1. Geri yükleme kimliği oluşturun: Kullanıcı uygulamanızda oturum açtığında, hesabıyla ilişkili bir geri yükleme kimliği oluşturun. Bu kimlik bilgisi yerel olarak depolanır ve kullanıcı Google Yedekleme'yi etkinleştirdiyse ve uçtan uca şifreleme kullanılabiliyorsa bulutla senkronize edilir (uygulamalar bulutla senkronizasyonu devre dışı bırakabilir).
  2. Geri yükleme kimlik bilgisini alma: Kullanıcı yeni bir cihaz kurduğunda uygulamanız, Kimlik Bilgileri Yöneticisi'nden geri yükleme kimlik bilgisini isteyebilir. Bu sayede, ek giriş yapılmasına gerek kalmadan kullanıcıların oturumunu otomatik olarak açabilirsiniz.
  3. Kimliği Geri Yükleme'yi temizleyin: Kullanıcı uygulamanızdan çıktığında ilişkili Kimliği Geri Yükleme'yi silmeniz gerekir.

Kimlik bilgilerini geri yükleme özelliği, geçiş anahtarlarını zaten uygulamış olan arka uç sistemleriyle sorunsuz bir şekilde entegre edilebilir. Bu uyumluluk, hem geçiş anahtarlarının hem de kimlik bilgilerini geri yükleme özelliği tarafından kullanılan kimlik bilgisi türü olan geri yükleme anahtarlarının aynı temel teknik özelliklere uymasıyla ilgilidir. Bu uyum sayesinde, kimlik bilgileri geri yükleme işlemi, geçiş anahtarı etkin sistemlerde depolanan kullanıcı kimlik bilgilerini etkili bir şekilde alıp yeniden etkinleştirebilir. Böylece, farklı platformlarda ve kimlik doğrulama yöntemlerinde tutarlı ve kullanıcı dostu bir deneyim sağlanır.

Kimlik Bilgisi Yöneticisi alt sayfası
1. şekil. Kimlik bilgisi oluşturma, geri yükleme akışı başlatma ve otomatik kullanıcı oturum açma dahil olmak üzere, geri yükleme kimlik bilgisi kullanılarak uygulama verilerinin yeni bir cihaza geri yüklenmesini gösteren şema

Uygulama

Restore Credentials API, Credential Manager Jetpack kitaplığı aracılığıyla kullanılabilir. Başlamak için şu adımları uygulayın:

  1. Projenize Credential Manager bağımlılığını ekleyin.

    // build.gradle.kts
    implementation("androidx.credentials:credentials:1.5.0-alpha03")
    
  2. CreateRestoreCredentialRequest nesnesi oluşturun.

  3. CredentialManager nesnesinde createCredential() yöntemini çağırın.

    val credentialManager = CredentialManager.create(context)
    
    // On a successful authentication create a Restore Key
    // Pass in the context and CreateRestoreCredentialRequest object
    val response = credentialManager.createCredential(context, createRestoreRequest)
    

    Oluşturulan bu geri yükleme kimlik bilgisi, bir webauthn kimlik bilgisi türüdür ve geri yükleme anahtarı olarak bilinir.

  4. Kullanıcı yeni bir cihaz kurduğunda getCredential() yöntemini CredentialManager nesnesinde çağırın.

    // Fetch the Authentication JSON from server
    val authenticationJson = fetchAuthenticationJson()
    
    // Create the GetRestoreCredentialRequest object
    val options = GetRestoreCredentialOption(authenticationJson)
    val getRequest = GetCredentialRequest(listOf(options))
    
    // The restore key can be fetched in two scenarios to
    // 1. On the first launch of app on the device, fetch the Restore Key
    // 2. In the onRestore callback (if the app implements the Backup Agent)
    val response = credentialManager.getCredential(context, getRequest)
    
  5. Kullanıcı uygulamanızın oturumunu kapattığında CredentialManager nesnesinde clearCredentialState() yöntemini çağırın.

    // Create a ClearCredentialStateRequest object
    val clearRequest = ClearCredentialStateRequest(TYPE_CLEAR_RESTORE_CREDENTIAL)
    
    // On user log-out, clear the restore key
    val response = credentialManager.clearCredentialState(clearRequest)
    

Yedekleme aracısı kullanıyorsanız getCredential bölümünü onRestore geri çağırma işlevi içinde gerçekleştirin. Bu sayede, uygulama verileri geri yüklendikten hemen sonra uygulamanın kimlik bilgilerinin de geri yüklenmesi sağlanır.