Untuk mengintegrasikan Smart Lock untuk Sandi ke aplikasi Android, Anda harus menambahkan panggilan ke Credentials API ke alur pengaktifan dan login aplikasi Anda. Diagram berikut menunjukkan alur aplikasi Android standar yang menggunakan Smart Lock untuk Sandi.
Meskipun ada banyak cara untuk mengintegrasikan Smart Lock untuk Sandi dengan baik, serta detail integrasi bergantung pada struktur dan pengalaman pengguna aplikasi, alur berikut direkomendasikan untuk sebagian besar aplikasi. Aplikasi yang menggunakan alur ini memiliki keunggulan pengalaman pengguna berikut:
- Pengguna layanan Anda yang sudah ada dan memiliki satu kredensial yang disimpan akan langsung login, dan akan langsung diarahkan ke tampilan login saat membuka aplikasi.
- Pengguna yang memiliki beberapa kredensial yang disimpan atau yang telah menonaktifkan login otomatis hanya perlu merespons satu dialog sebelum membuka tampilan login aplikasi.
- Pengguna yang belum memiliki kredensial tersimpan atau belum mendaftar dapat memilih nama dan email mereka dengan sekali ketuk dan dikirim secara cerdas ke tampilan login atau pendaftaran, dengan informasi ini telah diisi sebelumnya.
- Saat pengguna logout, aplikasi akan memastikan mereka tidak login kembali secara otomatis.
Mengambil kredensial
- Saat aplikasi dimulai, jika tidak ada pengguna yang login, panggil
CredentialsClient.request()
. - Jika
Task
berhasil, dapatkan kredensial pengguna dengangetResult().getCredential()
dan gunakan untuk login. - Jika
Task
gagal dan merupakan pengecualian dari instanceResolvableApiException
dangetStatusCode()
menampilkanRESOLUTION_REQUIRED
, input pengguna diperlukan untuk memilih kredensial. PanggilstartResolutionForResult()
untuk meminta pengguna memilih akun tersimpan, lalu panggilgetParcelableExtra(Credential.EXTRA_KEY)
untuk mendapatkan kredensial pengguna dan menggunakannya untuk login.
Simpan kredensial
Jika
Task
gagal denganApiException
dangetStatusCode()
menampilkanSIGN_IN_REQUIRED
, pengguna tidak memiliki kredensial yang tersimpan dan harus login atau mendaftar secara manual menggunakan alur login atau pendaftaran saat ini. Setelah pengguna berhasil menyelesaikan login, Anda dapat memberi kesempatan kepada pengguna untuk menyimpan kredensialnya untuk pengambilan di masa mendatang (langkah 5).Anda dapat membantu pengguna untuk login atau mendaftar lebih cepat dan lebih mudah dengan mengambil petunjuk login, seperti alamat email pengguna. Pengguna dapat memilih petunjuk dan melewati pengetikan kredensialnya. Jika aplikasi Anda mengharuskan pengguna untuk login, Anda dapat memilih untuk mengambil petunjuk segera setelah permintaan kredensial awal gagal (jika tidak, Anda dapat menunggu hingga pengguna memulai alur login atau pendaftaran).
- Panggil
CredentialsClient.getHintPickerIntent()
dan mulai intent untuk meminta pengguna memilih akun, lalu panggilgetParcelableExtra(Credential.EXTRA_KEY)
untuk mendapatkan petunjuk login. - Jika ID pengguna petunjuk cocok dengan pengguna yang sudah ada, isi formulir login terlebih dahulu dengan pengguna tersebut dan biarkan pengguna memasukkan sandi untuk login.
- Jika ID pengguna petunjuk tidak cocok dengan pengguna yang ada, isi formulir pendaftaran terlebih dahulu dengan ID dan nama pengguna, lalu izinkan pengguna membuat akun baru.
- Panggil
-
Setelah pengguna berhasil login atau membuat akun, simpan ID dan sandi pengguna dengan
CredentialsClient.save()
.Jika pengguna login dengan penyedia identitas gabungan seperti Login dengan Google, buat objek
Credential
dengan alamat email pengguna sebagai ID dan tentukan penyedia identitas dengansetAccountType
.
Logout
- Saat pengguna logout, panggil
CredentialsClient.disableAutoSignIn()
untuk mencegah pengguna segera login kembali. Menonaktifkan login otomatis juga memungkinkan pengguna beralih antar-akun dengan mudah—misalnya, antara akun kerja dan pribadi, atau antar-akun di perangkat bersama—tanpa harus memasukkan kembali informasi login.
Siap mengintegrasikan Smart Lock untuk Sandi ke aplikasi Anda? Mulai.