Xác minh phản hồi của người dùng

Trang này giải thích cách xác minh phản hồi của người dùng đối với một thử thách reCAPTCHA từ phần phụ trợ của ứng dụng.

Đối với người dùng web, bạn có thể nhận mã thông báo phản hồi của người dùng theo một trong 3 cách:

  • Tham số POST của g-recaptcha-response khi người dùng gửi biểu mẫu trên trang web của bạn
  • grecaptcha.getResponse(opt_widget_id) sau khi người dùng hoàn thành thử thách reCAPTCHA
  • Là đối số chuỗi cho hàm callback nếu data-callback được chỉ định trong thuộc tính thẻ g-recaptcha hoặc tham số gọi lại trong phương thức grecaptcha.render

Đối với người dùng thư viện Android, bạn có thể gọi phương thức SafetyNetApi.RecaptchaTokenResult.getTokenResult() để lấy mã thông báo phản hồi nếu trạng thái trả về thành công.

Quy định hạn chế về mã thông báo

Mỗi mã phản hồi của người dùng reCAPTCHA có hiệu lực trong hai phút và chỉ có thể được xác minh một lần để ngăn các cuộc tấn công phát lại. Nếu cần mã thông báo mới, bạn có thể chạy lại quy trình xác minh bằng reCAPTCHA.

Sau khi nhận được mã thông báo phản hồi, bạn cần xác minh mã này trong vòng hai phút bằng reCAPTCHA bằng cách sử dụng API sau đây để đảm bảo mã thông báo là hợp lệ.

Yêu cầu API

URL: https://www.google.com/recaptcha/api/siteverify Phương thức: POST

Thông số POST Mô tả
bí mật Bắt buộc. Khóa dùng chung giữa trang web của bạn và reCAPTCHA.
phản hồi Bắt buộc. Mã phản hồi của người dùng do công cụ tích hợp phía máy khách của reCAPTCHA cung cấp trên trang web của bạn.
điều khiển từ xa Không bắt buộc. Địa chỉ IP của người dùng.

Phản hồi của API

Phản hồi là đối tượng 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
}

Đối với 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
}

Tham chiếu mã lỗi

Mã lỗi Mô tả
thiếu thông tin đầu vào bí mật Thiếu thông số bí mật.
mã khoá nhập không hợp lệ Tham số bí mật không hợp lệ hoặc không đúng định dạng.
thiếu đầu vào-phản hồi Thiếu thông số phản hồi.
phản hồi không hợp lệ Tham số phản hồi không hợp lệ hoặc không đúng định dạng.
yêu cầu không hợp lệ Yêu cầu không hợp lệ hoặc không đúng định dạng.
thời gian chờ hoặc trùng lặp Phản hồi không còn hợp lệ: quá cũ hoặc đã được sử dụng trước đó.