การยืนยันคําตอบของผู้ใช้

หน้านี้จะอธิบายวิธียืนยันการตอบกลับของผู้ใช้ reCAPTCHA จากแบ็กเอนด์ของแอปพลิเคชัน

สําหรับผู้ใช้เว็บ คุณจะได้รับโทเค็นการตอบสนองของผู้ใช้ด้วย 1 ใน 3 วิธีต่อไปนี้

  • พารามิเตอร์ POST ของ g-recaptcha-response เมื่อผู้ใช้ส่งแบบฟอร์มในเว็บไซต์
  • grecaptcha.getResponse(opt_widget_id) หลังจากที่ผู้ใช้ทําภารกิจ reCAPTCHA สําเร็จแล้ว
  • เป็นอาร์กิวเมนต์สตริงสําหรับฟังก์ชันเรียกกลับ หากมีการระบุ data-callback ในแอตทริบิวต์แท็ก g-recaptcha หรือพารามิเตอร์เรียกกลับในเมธอด grecaptcha.render

สําหรับผู้ใช้ไลบรารี Android คุณเรียกใช้เมธอด SafetyNetApi.RecaptchaTokenResult.getTokenResult() เพื่อรับโทเค็นการตอบสนองได้หากสถานะกลับมาสําเร็จ

ข้อจํากัดของโทเค็น

โทเค็นการตอบกลับของผู้ใช้ reCAPTCHA แต่ละรายการจะใช้ได้เป็นเวลา 2 นาที และได้รับการยืนยันได้เพียงครั้งเดียวเท่านั้นเพื่อป้องกันการเล่นซ้ํา หากต้องการโทเค็นใหม่ คุณจะเรียกใช้การยืนยัน reCAPTCHA อีกครั้งได้

หลังจากที่รับโทเค็นการตอบกลับแล้ว คุณจะต้องยืนยันภายใน 2 นาทีด้วย reCAPTCHA โดยใช้ API ต่อไปนี้เพื่อให้แน่ใจว่าโทเค็นถูกต้อง

คำขอ API

URL: https://www.google.com/recaptcha/api/siteverify เมธอด: POST

พารามิเตอร์ POST คำอธิบาย
ข้อมูลลับ ต้องระบุ คีย์ที่ใช้ร่วมกันระหว่างเว็บไซต์และ reCAPTCHA
การตอบกลับ ต้องระบุ โทเค็นการตอบสนองของผู้ใช้ที่ได้จากการผสานรวมฝั่งไคลเอ็นต์ของ reCAPTCHA ในเว็บไซต์
รีโมต ไม่บังคับ ที่อยู่ IP ของผู้ใช้

การตอบกลับ API

การตอบกลับเป็นออบเจ็กต์ 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
}

สําหรับ 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
}

ข้อมูลอ้างอิงรหัสข้อผิดพลาด

รหัสข้อผิดพลาด คำอธิบาย
ไม่มี-อินพุต-ข้อมูลลับ ไม่มีพารามิเตอร์ข้อมูลลับ
อินพุต-ข้อมูลลับไม่ถูกต้อง พารามิเตอร์ข้อมูลลับไม่ถูกต้องหรือผิดรูปแบบ
ไม่มีการตอบสนองอินพุต ไม่มีพารามิเตอร์การตอบกลับ
การตอบกลับที่ป้อนไม่ถูกต้อง พารามิเตอร์การตอบกลับไม่ถูกต้องหรือผิดรูปแบบ
คําขอไม่ถูกต้อง คําขอไม่ถูกต้องหรือผิดรูปแบบ
หมดเวลาหรือทําซ้ํา คําตอบนี้ใช้ไม่ได้แล้ว ไม่ว่าจะเก่าเกินไปหรือเคยใช้แล้ว