Alur integrasi Android

Untuk mengintegrasikan Smart Lock untuk Sandi ke aplikasi Android, Anda harus menambahkan panggilan ke Credentials API ke alur startup 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 spesifikasi 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 tersimpan akan langsung login, dan mereka akan langsung diarahkan ke tampilan login saat mereka membuka aplikasi.
  • Pengguna yang memiliki beberapa kredensial tersimpan atau 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. Kemudian, pengguna tersebut akan diarahkan secara cerdas ke tampilan login atau pendaftaran, dengan informasi ini yang sudah terisi otomatis.
  • Saat pengguna logout, aplikasi 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(), lalu gunakan untuk login.
  3. Jika Task gagal dan pengecualiannya adalah 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 gunakan untuk login.

Menyimpan kredensial

  1. Jika Task gagal dengan menampilkan ApiException dan getStatusCode() menampilkan SIGN_IN_REQUIRED, pengguna tidak memiliki kredensial tersimpan dan harus login atau mendaftar secara manual menggunakan alur login atau pendaftaran saat ini. Setelah pengguna berhasil menyelesaikan proses login, Anda dapat memberikan kesempatan kepada pengguna untuk menyimpan kredensialnya agar dapat digunakan kembali di lain waktu (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 tidak perlu mengetik kredensialnya. Jika aplikasi Anda mengharuskan pengguna untuk login, Anda dapat memilih untuk segera mengambil petunjuk 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 dengan ID tersebut dan biarkan pengguna memasukkan sandi untuk login.
    3. Jika ID pengguna petunjuk tidak cocok dengan pengguna yang sudah ada, isi formulir pendaftaran dengan ID dan nama pengguna tersebut, dan izinkan pengguna membuat akun baru.
  2. Setelah pengguna berhasil login atau membuat akun, simpan ID pengguna dan sandi 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. Ketika 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.