במאמר הזה מוסבר איך לאמת את תגובת המשתמש לאתגר reCAPTCHA בקצה העורפי של האפליקציה.
עבור משתמשי אינטרנט, ניתן לקבל את אסימון התגובה של המשתמש באחת משלוש דרכים:
g-recaptcha-response
הפרמטר POST כשהמשתמש שולח את הטופס באתר שלךgrecaptcha.getResponse(opt_widget_id)
אחרי שהמשתמש משלים את האתגר reCAPTCHA- כארגומנט במחרוזת אל פונקציית הקריאה החוזרת
אם
data-callback
צוין במאפיין התגg-recaptcha
או בפרמטר של הקריאה החוזרת בשיטהgrecaptcha.render
עבור משתמשי ספריית Android, תוכלו לקרוא לשיטה SafetyNetApi.RecaptchaTokenResult.getTokenResult() כדי לקבל אסימון תגובה אם הסטטוס הצליח.
הגבלות אסימונים
כל אסימון תגובה למשתמש של reCAPTCHA תקף למשך שתי דקות, ואפשר לאמת אותו רק פעם אחת כדי למנוע התקפות הפעלה מחדש. אם נדרש אסימון חדש, ניתן להריץ מחדש את אימות ה-reCAPTCHA.
אחרי שתקבלו את אסימון התגובה, תצטרכו לאמת אותו תוך שתי דקות באמצעות reCAPTCHA באמצעות ה-API הבא כדי לוודא שהאסימון תקף.
בקשת API
כתובת URL: https://www.google.com/recaptcha/api/siteverify METHOD: POST
פרמטר POST | תיאור |
---|---|
secret | חובה. המפתח המשותף בין האתר שלך לבין 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
}
הפניה לקוד שגיאה
קוד שגיאה | תיאור |
---|---|
חסר קלט-סודי | הפרמטר הסודי חסר. |
קלט-סוד לא חוקי | הפרמטר הסודי לא תקין או פגום. |
חסר קלט-תשובה | הפרמטר 'תגובה' חסר. |
קלט לא חוקי | פרמטר התגובה אינו חוקי או פגום. |
בקשה לא תקינה | הבקשה לא חוקית או פגומה. |
זמן קצוב או כפול | התשובה אינה תקפה יותר: היא ישנה מדי או שנעשה בה שימוש בעבר. |