Halaman ini menjelaskan cara memverifikasi respons pengguna terhadap tantangan reCAPTCHA dari backend aplikasi Anda.
Untuk pengguna web, Anda bisa mendapatkan token respons pengguna dengan salah satu dari tiga cara berikut:
- Parameter POST
g-recaptcha-response
saat pengguna mengirim formulir di situs Anda grecaptcha.getResponse(opt_widget_id)
setelah pengguna menyelesaikan tantangan reCAPTCHA- Sebagai argumen string ke fungsi callback jika
data-callback
ditentukan dalam atribut tagg-recaptcha
atau parameter callback dalam metodegrecaptcha.render
Untuk pengguna library Android, Anda dapat memanggil metode SafetyNetApi.RecaptchaTokenResult.getTokenResult() untuk mendapatkan token respons jika statusnya berhasil.
Pembatasan Token
Setiap token respons pengguna reCAPTCHA berlaku selama dua menit dan hanya dapat diverifikasi satu kali untuk mencegah serangan replay. Jika memerlukan token baru, Anda dapat menjalankan kembali verifikasi reCAPTCHA.
Setelah mendapatkan token respons, Anda harus memverifikasinya dalam waktu dua menit dengan reCAPTCHA menggunakan API berikut untuk memastikan token tersebut valid.
Permintaan API
URL: https://www.google.com/recaptcha/api/siteverify METODE: POST
Parameter POST | Deskripsi |
---|---|
rahasia | Wajib diisi. Kunci bersama antara situs Anda dan reCAPTCHA. |
respons | Wajib diisi. Token respons pengguna yang disediakan 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 |
---|---|
rahasia-tidak ada | Parameter rahasia tidak ada. |
rahasia-input tidak valid | Parameter rahasia tidak valid atau formatnya salah. |
respons-hilang tidak ada | Parameter respons tidak ada. |
respons-input tidak valid | Parameter respons tidak valid atau formatnya salah. |
permintaan buruk | Permintaan tidak valid atau formatnya salah. |
waktu tunggu atau duplikat | Responsnya tidak valid lagi: respons tersebut sudah terlalu lama atau telah digunakan sebelumnya. |