Memulihkan kredensial

Fitur Pulihkan Kredensial Pengelola Kredensial memungkinkan pengguna memulihkan akun aplikasi mereka saat menyiapkan perangkat baru. API ini dalam pratinjau developer dan tersedia di semua perangkat yang memiliki Android 9 atau yang lebih tinggi dan Layanan Google Play (GMS) Core versi 242200000 atau yang lebih tinggi. Manfaat Restore Credentials fitur mencakup:

  • Pengalaman pengguna yang lancar: Pengguna dapat memulihkan akun aplikasi mereka tanpa perlu login secara manual ke setiap aplikasi.
  • Peningkatan engagement pengguna: Pengguna lebih cenderung untuk terus menggunakan jika mereka dapat memulihkan akun saat menyiapkan perangkat baru.
  • Mengurangi upaya pengembangan: fitur Pulihkan Kredensial terintegrasi dengan Pengelola Kredensial, sehingga developer yang sudah mendukung kunci sandi dapat menambahkan kemampuan pemulihan kredensial.

Cara kerjanya

Anda dapat menggunakan Pulihkan Kredensial untuk membuat, mendapatkan, dan menghapus kredensial yang relevan.

  1. Buat Kredensial Pemulihan: Saat pengguna login ke aplikasi Anda, buat Kredensial Pemulihan yang terkait dengan akunnya. Kredensial ini disimpan secara lokal dan disinkronkan ke cloud jika pengguna telah mengaktifkan Pencadangan Google dan enkripsi end-to-end tersedia (aplikasi dapat memilih untuk tidak menyinkronkan ke cloud)
  2. Dapatkan Kredensial Pemulihan: Saat pengguna menyiapkan perangkat baru, aplikasi Anda dapat meminta Restore Credential dari Pengelola Kredensial. Hal ini memungkinkan Anda membuat pengguna login secara otomatis tanpa memerlukan input tambahan.
  3. Hapus Kredensial Pemulihan: Saat pengguna logout dari aplikasi, Anda akan menghapus Kredensial Pemulihan terkait.

Fitur Pulihkan Kredensial dapat terintegrasi secara lancar dengan sistem backend yang telah mengimplementasikan kunci sandi. Kompatibilitas ini berasal dari fakta kunci sandi dan memulihkan kunci (jenis kredensial yang digunakan oleh fitur Pulihkan Kredensial) mematuhi persyaratan teknis dasar yang sama spesifikasi produk. Penyelarasan ini memastikan bahwa proses {i>Restore Credentials<i} dapat secara efektif mengambil dan mengaktifkan kembali kredensial pengguna yang disimpan di perangkat yang mengaktifkan kunci sandi sistem, memberikan pengalaman yang konsisten dan ramah pengguna di berbagai platform dan metode otentikasi.

Sheet bawah Pengelola Kredensial
Gambar 1. Diagram yang menggambarkan pemulihan data aplikasi ke perangkat baru menggunakan kredensial pemulihan, termasuk membuat kredensial, memulai alur pemulihan, dan login otomatis pengguna

Implementasi

Restore Credentials API tersedia melalui Jetpack Pengelola Kredensial library. Untuk memulai, ikuti langkah-langkah ini:

  1. Tambahkan dependensi Pengelola Kredensial ke project Anda.

    // build.gradle.kts
    implementation("androidx.credentials:credentials:1.5.0-alpha03")
    
  2. Buat objek CreateRestoreCredentialRequest.

  3. Panggil metode createCredential() pada objek CredentialManager.

    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)
    

    Kredensial pemulihan yang dihasilkan ini adalah jenis kunci sandi, dan juga diketahui sebagai kunci sandi pemulihan atau kunci pemulihan.

  4. Saat pengguna menyiapkan perangkat baru, panggil metode getCredential() di Objek CredentialManager.

    // 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. Saat pengguna logout dari aplikasi, panggil clearCredentialState() pada objek CredentialManager.

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

Jika Anda menggunakan agen pencadangan, lakukan bagian getCredential dalam Callback onRestore. Hal ini memastikan kredensial aplikasi dipulihkan segera setelah data aplikasi dipulihkan.