Memverifikasi respons pengguna

Halaman ini menjelaskan cara memverifikasi respons pengguna terhadap tantangan reCAPTCHA dari ID backend.

Untuk pengguna web, Anda bisa mendapatkan token respons pengguna dengan salah satu dari tiga cara:

  • Parameter POST g-recaptcha-response saat pengguna mengirimkan formulir di situs Anda
  • grecaptcha.getResponse(opt_widget_id) setelah pengguna selesai tantangan reCAPTCHA
  • Sebagai argumen string ke fungsi callback Anda jika data-callback ditentukan dalam atribut tag g-recaptcha atau parameter callback di metode grecaptcha.render

Untuk pengguna library Android, Anda dapat memanggil SafetyNetApi.RecaptchaTokenResult.getTokenResult() untuk mendapatkan token respons jika statusnya kembali berhasil.

Pembatasan Token

Setiap token respons pengguna reCAPTCHA valid selama dua menit, dan hanya dapat diverifikasi satu kali untuk mencegah serangan berulang. Jika memerlukan token baru, Anda dapat menjalankan ulang verifikasi reCAPTCHA.

Setelah mendapatkan token respons, Anda perlu memverifikasinya dalam waktu dua menit dengan reCAPTCHA menggunakan berikut untuk memastikan token valid.

Permintaan API

URL: https://www.google.com/recaptcha/api/siteverify METODE: POSTING

Parameter POST Deskripsi
secret Wajib diisi. Kunci yang dibagikan antara situs Anda dan reCAPTCHA.
response Wajib diisi. Token respons pengguna yang diberikan oleh integrasi sisi klien reCAPTCHA di situs Anda.
remoteip Opsional. Alamat IP pengguna.

Respons API

Responsnya adalah objek JSON:

{
  "success": true|false,
  "challenge_ts": timestamp,  // timestamp of the challenge load (ISO format yyyy-MM-dd'T'HH:mm:ssZZ)
  "hostname": string,         // the hostname of the site where the reCAPTCHA was solved
  "error-codes": [...]        // optional
}

Untuk reCAPTCHA Android:

{
  "success": true|false,
  "challenge_ts": timestamp,  // timestamp of the challenge load (ISO format yyyy-MM-dd'T'HH:mm:ssZZ)
  "apk_package_name": string, // the package name of the app where the reCAPTCHA was solved
  "error-codes": [...]        // optional
}

Referensi kode error

Kode error Deskripsi
missing-input-secret Parameter secret tidak ada.
invalid-input-secret Parameter rahasia tidak valid atau formatnya salah.
missing-input-response Parameter respons tidak ada.
invalid-input-response Parameter respons tidak valid atau formatnya salah.
permintaan buruk Permintaan tidak valid atau formatnya salah.
waktu tunggu atau duplikat Respons tidak valid lagi: terlalu lama atau telah digunakan sebelumnya.