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 fitur Pulihkan Kredensial meliputi:
- Pengalaman pengguna yang lancar: Pengguna dapat memulihkan akun aplikasi mereka tanpa perlu login ke setiap aplikasi secara manual.
- Peningkatan interaksi pengguna: Pengguna cenderung akan terus menggunakan aplikasi Anda 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.
- 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)
- Mendapatkan Kredensial Pemulihan: Saat pengguna menyiapkan perangkat baru, aplikasi Anda dapat meminta Kredensial Pemulihan dari Pengelola Kredensial. Hal ini memungkinkan Anda membuat pengguna login secara otomatis tanpa memerlukan input tambahan.
- Hapus Kredensial Pemulihan: Saat pengguna logout dari aplikasi Anda, Anda harus menghapus Kredensial Pemulihan terkait.
Fitur Kredensial Pemulihan dapat terintegrasi dengan lancar dengan sistem backend yang telah menerapkan kunci sandi. Kompatibilitas ini berasal dari fakta bahwa kunci sandi dan kunci pemulihan (jenis kredensial yang digunakan oleh fitur Kembalikan Kredensial) mematuhi spesifikasi teknis mendasari yang sama. Penyelarasan ini memastikan bahwa proses Pulihkan Kredensial dapat mengambil dan mengaktifkan kembali kredensial pengguna yang disimpan di sistem yang mengaktifkan kunci sandi secara efektif, sehingga memberikan pengalaman yang konsisten dan mudah digunakan di berbagai platform dan metode autentikasi.
Implementasi
Restore Credentials API tersedia melalui library Jetpack Pengelola Kredensial. Untuk memulai, ikuti langkah-langkah ini:
Tambahkan dependensi Pengelola Kredensial ke project Anda.
// build.gradle.kts implementation("androidx.credentials:credentials:1.5.0-alpha03")
Buat objek
CreateRestoreCredentialRequest
.Panggil metode
createCredential()
pada objekCredentialManager
.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 kredensial webauthn, dan dikenal sebagai kunci pemulihan.
Saat pengguna menyiapkan perangkat baru, panggil metode
getCredential()
pada objekCredentialManager
.// 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)
Saat pengguna logout dari aplikasi Anda, panggil metode
clearCredentialState()
pada objekCredentialManager
.// 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.