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ứcgrecaptcha.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 đó. |