التحقق من رد المستخدم

تشرح هذه الصفحة كيفية التحقق من رد المستخدم على تحدي reCAPTCHA من خلفية تطبيقك.

بالنسبة إلى مستخدمي الويب، يمكنك الحصول على الرمز المميز لاستجابة المستخدم بإحدى الطرق الثلاث التالية:

  • مَعلمة POST واحدة (g-recaptcha-response) عندما يُرسل المستخدم النموذج على موقعك الإلكتروني.
  • grecaptcha.getResponse(opt_widget_id) بعد أن يكمل المستخدم تحدّي reCAPTCHA
  • كوسيطة سلسلة لدالة معاودة الاتصال إذا تم تحديد data-callback في سمة العلامة g-recaptcha أو في معلمة رد الاتصال في طريقة grecaptcha.render

بالنسبة إلى مستخدمي مكتبة Android، يمكنك استدعاء الطريقة SafetyNetApi.RecaptchaTokenResult.getTokenResult() للحصول على رمز الاستجابة المميّز في حال عرض الحالة بنجاح.

القيود المفروضة على الرموز المميّزة

يكون كل رمز مميّز لاستجابة مستخدم reCAPTCHA صالحًا لمدة دقيقتين، ولا يمكن التحقّق منه إلا مرة واحدة لمنع إعادة تشغيل الهجمات. إذا كنت بحاجة إلى رمز مميّز جديد، يمكنك إعادة إجراء اختبار التحقّق reCAPTCHA.

بعد الحصول على الرمز المميّز للاستجابة، يجب التحقّق منه في غضون دقيقتين باستخدام reCAPTCHA باستخدام واجهة برمجة التطبيقات التالية للتأكّد من صلاحية الرمز المميّز.

طلب بيانات من واجهة برمجة التطبيقات

عنوان URL: https://www.google.com/recaptcha/api/siteverify الطريقة: POST

معلمة POST الوصف
secret مطلوبة. المفتاح المشترَك بين موقعك الإلكتروني وreCAPTCHA
response مطلوبة. هو الرمز المميّز لاستجابة المستخدم الذي توفّره عملية دمج reCAPTCHA من جهة العميل على موقعك الإلكتروني.
remoteip اختياريّ. عنوان IP للمستخدم.

ردّ من واجهة برمجة التطبيقات

الاستجابة هي كائن 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 لم يعُد الردّ صالحًا: إمّا قديم جدًا أو تم استخدامه في السابق.