Fitur Pulihkan Kredensial Credential Manager 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 secara manual ke setiap aplikasi.
- Peningkatan interaksi pengguna: Pengguna cenderung terus menggunakan aplikasi Anda jika mereka dapat memulihkan akunnya 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 Restore Credentials 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 Credential Manager. Hal ini memungkinkan Anda login pengguna secara otomatis tanpa memerlukan input tambahan.
- Hapus Kredensial Pemulihan: Saat pengguna logout dari aplikasi Anda, Anda harus menghapus Kredensial Pemulihan terkait.
Fitur Pulihkan Kredensial dapat berintegrasi 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 Pulihkan Kredensial) mematuhi spesifikasi teknis pokok yang sama. Penyelarasan ini memastikan bahwa proses Pulihkan Kredensial dapat secara efektif mengambil dan memulihkan kredensial pengguna yang disimpan dalam sistem yang mendukung kunci sandi, sehingga memberikan pengalaman yang konsisten dan mudah digunakan di berbagai platform dan metode autentikasi.
Implementasi
Restore Credentials API tersedia melalui library Jetpack Credential Manager. Untuk memulai, ikuti langkah-langkah ini:
Tambahkan dependensi Credential Manager 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 dibuat 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 = 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)
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 bahwa kredensial aplikasi dipulihkan
segera setelah data aplikasi dipulihkan.