Untuk mengintegrasikan Smart Lock untuk Sandi ke aplikasi Android, Anda harus menambahkan panggilan ke Credentials API ke alur proses mulai dan login aplikasi. Diagram berikut menunjukkan alur aplikasi Android standar yang menggunakan Smart Lock untuk Sandi.
Meskipun ada banyak cara agar berhasil mengintegrasikan Smart Lock untuk Sandi, dan detail integrasi bergantung pada struktur dan pengalaman pengguna aplikasi, alur berikut direkomendasikan untuk sebagian besar aplikasi. Aplikasi yang menggunakan alur ini memiliki keuntungan pengalaman pengguna berikut:
- Pengguna layanan yang sudah ada dan memiliki satu kredensial tersimpan akan segera login, dan mereka akan langsung diarahkan ke tampilan login saat membuka aplikasi.
- Pengguna yang memiliki beberapa kredensial tersimpan 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 emailnya dengan sekali ketuk, dan secara cerdas akan diarahkan ke tampilan login atau pendaftaran, dengan informasi ini yang sudah diisi sebelumnya.
- Saat pengguna logout, aplikasi 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 pengecualiannya adalah 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 gunakan 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 Anda saat ini. Setelah pengguna berhasil menyelesaikan proses login, Anda dapat memberikan 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 kredensial. 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 dengan ID tersebut dan biarkan pengguna memasukkan sandi untuk login.
- Jika ID pengguna petunjuk tidak cocok dengan pengguna yang sudah ada, isi formulir pendaftaran dengan ID dan nama pengguna, lalu izinkan pengguna membuat akun baru.
- Panggil
-
Setelah pengguna berhasil login atau membuat akun, simpan ID pengguna dan sandi tersebut dengan
CredentialsClient.save()
.Jika pengguna login dengan penyedia identitas gabungan seperti Login dengan Google, buat objek
Credential
dengan alamat email pengguna sebagai ID, lalu tentukan penyedia identitas dengansetAccountType
.
Logout
- Saat pengguna logout, panggil
CredentialsClient.disableAutoSignIn()
agar pengguna tidak langsung 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 ulang informasi login mereka.
Siap mengintegrasikan Smart Lock untuk Sandi ke aplikasi Anda? Mulai.