Alur integrasi Android

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.

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

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

    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, lalu izinkan pengguna membuat akun baru.
  2. 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 dengan setAccountType.

Logout

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