Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
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 dengan
getResult().getCredential() dan gunakan untuk login.
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
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).
Panggil CredentialsClient.getHintPickerIntent() dan mulai intent untuk meminta pengguna memilih akun, lalu panggil getParcelableExtra(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.
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
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.
[null,null,["Terakhir diperbarui pada 2025-07-25 UTC."],[[["\u003cp\u003eSmart Lock for Passwords is deprecated; migrate to Credential Manager for enhanced security and user experience with passkeys, passwords, and federated identities.\u003c/p\u003e\n"],["\u003cp\u003eSmart Lock for Passwords integration involves adding the Credentials API to your app's startup and sign-in flow to retrieve and save user credentials.\u003c/p\u003e\n"],["\u003cp\u003eExisting users with saved credentials can experience automatic sign-in, while new users can benefit from pre-filled forms using sign-in hints.\u003c/p\u003e\n"],["\u003cp\u003eEnsure to disable auto-sign-in upon user sign-out to prevent immediate re-authentication and facilitate account switching.\u003c/p\u003e\n"]]],[],null,["# Android integration flow\n\n| **Deprecated:** Smart Lock for Passwords is deprecated. To ensure the continued security and usability of your app, [migrate to\n| Credential Manager](https://developer.android.com/training/sign-in/passkeys/) today. Credential Manager supports passkey, password, and federated identity authentication (such as Sign-in with Google), stronger security, and a more consistent user experience.\n\nTo integrate Smart Lock for Passwords into your Android app, you must add calls\nto the [Credentials API](/android/reference/com/google/android/gms/auth/api/credentials/package-summary)\nto your app's start-up and sign-in flow. The following diagram shows the flow of\na typical Android app that uses Smart Lock for Passwords.\n\nWhile there are many ways to successfully integrate Smart Lock for Passwords,\nand the specifics of an integration depend on the structure and user experience\nof the app, the following flow is recommended for most apps. Apps that use this\nflow have these user experience advantages:\n\n- Existing users of your service that have a single credential saved are immediately signed in, and they will go directly to the signed-in view when they open the app.\n- Users that have multiple credentials saved or that have disabled automatic sign-in need to respond to only one dialog before they go to the app's signed-in view.\n- Users that have no saved credentials or haven't signed up yet can pick their name and email with a single tap and be intelligently sent to either the sign-in or sign-up view, with this information pre-filled.\n- When users sign out, the app ensures they are not automatically signed back in.\n\n[](/static/identity/smartlock-passwords/android/images/smartlock-passwords-flow.png)\n\n### Retrieve credentials\n\n1. When the app starts, if no user is already signed in, call `CredentialsClient.request()`.\n2. If the `Task` is successful, get the user's credentials with `getResult().getCredential()` and use them to sign in.\n3. If the `Task` fails and the exception is an instance of `ResolvableApiException` and `getStatusCode()` returns `RESOLUTION_REQUIRED`, user input is required to pick a credential. Call `startResolutionForResult()` to prompt the user to select a saved account, then call `getParcelableExtra(Credential.EXTRA_KEY)` to get the user's credentials and use them to sign in. If signing in with the retrieved credentials fails because the password is incorrect or the account doesn't exist, delete the credentials from Smart Lock with `CredentialsClient.delete()`.\n\n### Save credentials\n\n4. If the `Task` fails with an `ApiException` and\n `getStatusCode()` returns `SIGN_IN_REQUIRED`, the\n user has no saved credentials and must sign in or sign up manually using\n your current sign-in or sign-up flow. After the user successfully\n completes sign in, you can provide an opportunity for the user to save\n their credentials for future retrieval (step 5).\n\n You can help the user sign in or sign up faster and more\n easily by retrieving sign-in hints, such as the user's email address. The\n user can select the hint and skip typing their credentials. If your app\n requires users to sign in, you might choose to retrieve hints immediately\n after the initial credentials request fails (otherwise, you can wait until\n the user starts the sign-in or sign-up flow).\n 1. Call `CredentialsClient.getHintPickerIntent()` and start the intent to prompt the user to select an account, then call `getParcelableExtra(Credential.EXTRA_KEY)` to get the sign-in hint.\n 2. If the user ID of the hint matches an existing user, pre-fill the sign-in form with it and let the user enter the password to sign in.\n 3. If the user ID of the hint doesn't match an existing user, pre-fill the sign-up form with the user's ID and name, and let the user create a new account.\n5. After the user successfully signs in or creates an account, save the user\n ID and password with `CredentialsClient.save()`.\n\n If the user signed in with a federated identity provider such as Google\n Sign-In, create the `Credential` object with the user's email\n address as the ID and specify the identity provider with\n `setAccountType`.\n\n### Sign out\n\n6. When the user signs out, call `CredentialsClient.disableAutoSignIn()` to prevent the user from being immediately signed back in. Disabling auto-sign-in also enables users to switch between accounts easily---for example, between work and personal accounts, or between accounts on shared devices---without having to re-enter their sign-in information.\n\nReady to integrate Smart Lock for Passwords into your app?\n[Get started](/identity/smartlock-passwords/android/get-started)."]]