Xác minh câu trả lờ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 với 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ể lấy mã thông báo phản hồi của người dùng theo một trong 3 cách sau:

  • Tham số POST 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àm đố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() để nhận mã thông báo phản hồi nếu trạng thái trả về thành công.

Hạn chế về mã thông báo

Mỗi mã thông báo 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ột mã thông báo mới, bạn có thể chạy lại quy trình xác minh reCAPTCHA.

Sau khi nhận được mã thông báo phản hồi, bạn cần xác minh mã đó trong vòng 2 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 PHÁP: ĐĂNG

Tham số POST Nội dung mô tả
bí mật Bắt buộc. Khoá dùng chung giữa trang web của bạn và reCAPTCHA.
phản hồi Bắt buộc. Mã thông báo phản hồi của người dùng do tính năng tích hợp phía máy khách 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à một đố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 cho 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 Nội dung mô tả
thiếu-thông-tin-nhập Thiếu thông số bí mật.
thông tin đầu vào không hợp lệ Tham số bí mật không hợp lệ hoặc sai định dạng.
thiếu-nhập-phản hồi Thiếu thông số phản hồi.
phản hồi đầu vào không hợp lệ Tham số phản hồi không hợp lệ hoặc sai đị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.
hết 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 đó.