Alur Integrasi Android

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.

Diagram alur login Smart Lock

Mengambil kredensial

  1. Saat aplikasi dimulai, jika tidak ada pengguna yang login, panggil CredentialsClient.request().
  2. Jika Task berhasil, dapatkan kredensial pengguna dengan getResult().getCredential() dan gunakan untuk login.
  3. Jika Task gagal dan merupakan pengecualian dari instance ResolvableApiException dan getStatusCode() menampilkan RESOLUTION_REQUIRED, input pengguna diperlukan untuk memilih kredensial. Panggil startResolutionForResult() untuk meminta pengguna memilih akun tersimpan, lalu panggil getParcelableExtra(Credential.EXTRA_KEY) untuk mendapatkan kredensial pengguna dan menggunakannya untuk login.

Simpan kredensial

  1. Jika Task gagal dengan ApiException dan getStatusCode() menampilkan SIGN_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).

    1. Panggil CredentialsClient.getHintPickerIntent() dan mulai intent untuk meminta pengguna memilih akun, lalu panggil getParcelableExtra(Credential.EXTRA_KEY) untuk mendapatkan petunjuk login.
    2. 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.
    3. 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.
  2. 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 dengan setAccountType.

Logout

  1. 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.