Klien login Sekali Ketuk mengambil token ID Google saat pengguna memilih Akun Google. Token ID adalah pernyataan identitas pengguna yang ditandatangani yang juga berisi informasi profil dasar pengguna, mungkin termasuk alamat email yang telah diverifikasi oleh Google.
Jika token ID tersedia, Anda dapat menggunakannya untuk mengautentikasi dengan backend aplikasi secara aman, atau untuk mendaftarkan pengguna secara otomatis ke akun baru tanpa perlu memverifikasi alamat email pengguna.
Untuk memproses login atau pendaftaran pengguna dengan token ID, kirim token ke backend aplikasi Anda. Di backend, verifikasi token menggunakan library klien Google API atau library JWT tujuan umum. Jika pengguna belum pernah login ke aplikasi Anda dengan Akun Google ini, buat akun baru.
Jika Anda secara opsional memilih untuk menggunakan nonce untuk membantu menghindari serangan replay, gunakan getNonce untuk mengirimkannya bersama dengan Token ID ke server backend, dan periksa nilai yang diharapkan. Sebaiknya Anda mempertimbangkan penggunaan nonce untuk meningkatkan keamanan dan keselamatan pengguna.
Mendapatkan token ID dari objek kredensial
Setelah Anda mengambil kredensial pengguna, periksa apakah objek kredensial menyertakan token ID. Jika ya, kirim ke backend Anda.
Java
public class YourActivity extends AppCompatActivity { // ... private static final int REQ_ONE_TAP = 2; // Can be any integer unique to the Activity. private boolean showOneTapUI = true; // ... @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case REQ_ONE_TAP: try { SignInCredential credential = oneTapClient.getSignInCredentialFromIntent(data); String idToken = credential.getGoogleIdToken(); if (idToken != null) { // Got an ID token from Google. Use it to authenticate // with your backend. Log.d(TAG, "Got ID token."); } } catch (ApiException e) { // ... } break; } } }
Kotlin
class YourActivity : AppCompatActivity() { // ... private val REQ_ONE_TAP = 2 // Can be any integer unique to the Activity private var showOneTapUI = true // ... override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) when (requestCode) { REQ_ONE_TAP -> { try { val credential = oneTapClient.getSignInCredentialFromIntent(data) val idToken = credential.googleIdToken when { idToken != null -> { // Got an ID token from Google. Use it to authenticate // with your backend. Log.d(TAG, "Got ID token.") } else -> { // Shouldn't happen. Log.d(TAG, "No ID token!") } } } catch (e: ApiException) { // ... } } } // ... }