Yeni bir cihaz kurarken uygulama kimlik bilgilerini geri yükleme

Kimlik Bilgisi Yöneticisi'nin Kimlik Bilgilerini Geri Yükleme özelliği, kullanıcıların yeni bir cihaz kurarken uygulama hesaplarını geri yüklemelerine olanak tanır. Bu API, geliştirici önizlemesindedir ve Android 9 veya sonraki sürümlerin yanı sıra Google Play Hizmetleri (GMS) Core 242200000 veya sonraki sürümlerin yüklü olduğ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şimini artırma: Kullanıcılar yeni bir cihaz kurarken hesaplarını geri yükleyebiliyorsa uygulamanızı kullanmaya devam etme olasılıkları daha yüksektir.
  • Azaltılmış geliştirme çalışması: Kimlik Bilgilerini Geri Yükleme özelliği, Kimlik Bilgisi Yöneticisi ile entegre olduğundan, şifre anahtarlarını zaten destekleyen geliştiriciler kimlik bilgisi 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 Kimlik Bilgisi oluşturun: Kullanıcı uygulamanızda oturum açtığında, hesabıyla ilişkili bir Geri Yükleme Kimlik Bilgisi 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 Bilgilerini Alın: Kullanıcı yeni bir cihaz kurarken uygulamanız, Kimlik Bilgileri Yöneticisi'nden Geri Yükleme Kimlik Bilgileri'ni isteyebilir. Bu sayede, herhangi bir ek giriş yapmadan kullanıcıyı otomatik olarak oturum açtırabilirsiniz.
  3. Yedek Kimlik Bilgisini Temizleyin: Kullanıcı uygulamanızdan çıkış yaptığında ilişkili Yedek Kimlik Bilgisi'ni silmeniz gerekir.

Kimlik Bilgilerini Geri Yükleme özelliği, geçiş anahtarlarını zaten uygulamış arka uç sistemlerle sorunsuz bir şekilde entegre edilebilir. Bu uyumluluk, hem geçiş anahtarlarının hem de geri yükleme anahtarlarının (Kimlik Bilgilerini Geri Yükleme özelliği tarafından kullanılan kimlik bilgisi türü) temel teknik spesifikasyonlara uymasından kaynaklanır. Bu uyumluluk, kimlik bilgilerini geri yükleme sürecinin geçiş anahtarı özellikli sistemlerde depolanan kullanıcı kimlik bilgilerini etkili bir şekilde almasını ve yeniden etkinleştirmesini sağlar. Böylece farklı platformlar ve kimlik doğrulama yöntemleri arasında tutarlı ve kullanıcı dostu bir deneyim sunulur.

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

Uygulama

Restore Credentials API, Kimlik Bilgileri Yöneticisi Jetpack kitaplığı üzerinden kullanılabilir. Başlamak için şu adımları uygulayın:

  1. Projenize Kimlik Bilgisi Yöneticisi bağımlılığını ekleyin.

    // build.gradle.kts
    implementation("androidx.credentials:credentials:1.5.0-alpha03")
    
  2. Bir 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 kurarken CredentialManager nesnesinde getCredential() yöntemini çağırın.

    // Fetch the Authentication JSON from server
    val authenticationJson = ...
    
    // Create the GetRestoreCredentialRequest object
    val options = GetRestoreCredentialOption(authenticationJson)
    val getRequest = GetCredentialRequest(Immutablelist.of(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ızdan çıktığı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)
    

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