בדף הזה מוסבר איך לאמת את תגובת המשתמש לאתגר reCAPTCHA מהקצה העורפי של האפליקציה.
למשתמשי אינטרנט, אפשר לקבל את אסימון התגובה של המשתמש באחת משלוש דרכים:
- פרמטר POST אחד (
g-recaptcha-response
) כשהמשתמש שולח את הטופס באתר שלכם 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. |
response |
חובה. אסימון התגובה של המשתמש שסופק על ידי השילוב של reCAPTCHA בצד הלקוח באתר שלכם. |
remoteip |
זה שינוי אופציונלי. כתובת ה-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
}
הסבר על קודי שגיאה
קוד שגיאה | תיאור |
---|---|
missing-input-secret | הפרמטר הסודי חסר. |
invalid-input-secret | הפרמטר הסודי לא חוקי או לא תקין. |
missing-input-response | פרמטר התגובה חסר. |
invalid-input-response | פרמטר התגובה לא תקין או שגוי. |
bad-request | הבקשה לא חוקית או לא תקינה. |
timeout-or-duplicate | התשובה כבר לא תקפה: היא ישנה מדי או שהייתה בשימוש בעבר. |