بررسی پاسخ کاربر

این صفحه نحوه تأیید پاسخ کاربر به چالش reCAPTCHA از باطن برنامه شما را توضیح می دهد.

برای کاربران وب، می توانید نشانه پاسخ کاربر را به یکی از سه روش دریافت کنید:

  • پارامتر POST g-recaptcha-response زمانی که کاربر فرم را در سایت شما ارسال می کند
  • grecaptcha.getResponse(opt_widget_id) پس از تکمیل چالش reCAPTCHA توسط کاربر
  • اگر data-callback در ویژگی تگ g-recaptcha یا پارامتر callback در متد grecaptcha.render مشخص شده باشد، به عنوان آرگومان رشته ای برای تابع callback شما.

برای کاربران کتابخانه اندروید، می‌توانید متد SafetyNetApi.RecaptchaTokenResult.getTokenResult() را فراخوانی کنید تا در صورت موفقیت آمیز بودن وضعیت، کد پاسخ را دریافت کنید.

محدودیت های توکن

هر کد پاسخ کاربر reCAPTCHA به مدت دو دقیقه معتبر است و فقط یک بار برای جلوگیری از حملات مجدد قابل تأیید است. اگر به یک توکن جدید نیاز دارید، می‌توانید تأیید reCAPTCHA را دوباره اجرا کنید.

پس از دریافت رمز پاسخ، باید آن را در عرض دو دقیقه با reCAPTCHA با استفاده از API زیر تأیید کنید تا مطمئن شوید که رمز معتبر است.

درخواست API

URL: https://www.google.com/recaptcha/api/siteverify روش: ارسال

پارامتر 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
}

مرجع کد خطا

کد خطا شرح
گمشده-ورودی-راز پارامتر مخفی وجود ندارد.
invalid-input-secret پارامتر مخفی نامعتبر یا بد شکل است.
گمشده-ورودی-پاسخ پارامتر پاسخ وجود ندارد.
invalid-input-response پارامتر پاسخ نامعتبر یا نادرست است.
درخواست بد درخواست نامعتبر یا نادرست است.
مهلت زمانی یا تکراری پاسخ دیگر معتبر نیست: یا خیلی قدیمی است یا قبلاً استفاده شده است.