ما هي أفضل طريقة لاستخدام تحقق reCAPTCHA ؟

السلام عليكم

اضفت google reCAPTCHA الى فورم تسجيل الدخول في موقعي الـreact باستخدام react-google-recaptchaوحاليا تعمل بدون اخطاء، لكن اريد ظهورها فقط في حالة تسجيل الدخول بشكل خاطئ أكثر من مرة (مثل فيسبوك) او عمل submit بشكل متكرر لفورم ما، ما هي أفضل طريقة لذلك؟

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

وعليكم السلام. استعمل عداداً يقوم بالازدياد في كل مرة يقوم المستخدم بعمل submit لبيانات خاطئة، واقرن عرض google reCAPTCHA مع تجاوز العداد لرقم معيّن، مثلاً لدينا قائمة الإدخال التالية:

<form onSubmit={handleSubmit}>
      <label htmlFor="name">Name</label>
      <input type="text" id="name" className="input"/>
      {temp == 3 && <reCAPTCHA ... />} // يعرضه فقط عندما يكون العداد يساوي 3
      <button>Submit</button>
</form>

وفي وظيفة إرسال البيانات ضع:

const [temp, setTemp] = useState(0)
function handleSubmiT(e){
   try{..}
   catch(error){
      ...
      setTemp(temp+1)
   }
}

شكراً لردك اخ معاذ،

لكن في هذه الحالة ممكن تصفير العداد بإعادة تحميل الصفحة، ولو قمت باستخدام احدى طرق التخزين بالمتصفح ممكن الوصول اليها وتصفيرها ايضاً

صحيح الروبوتات يمكنها أن تصل إلى تخزين المتصفح، وأن تغير الip الخاص بها. لكن يمكنك في هذه الحالة أن تقوم بحفظ عداد temp في جدول كل مستخدم في قاعدة البيانات، عندما يحاول أن يقوم بتسجيل الدخول عن طريق اسم مستخدم ما عن طريق كلمة سر خاطئة زد العداد في جدول المستخدم بمقدار واحد، وإذا أدخل كلمة السر بشكل صحيح أعد العداد إلى الصفر، وإذا أصبح العداد بمقدار 3 -أو الرقم الذي تريد من المحاولات الفاشلة لكلمة السر- حوّله إلى صفحة ال captcha ليتم التحقق من أنه ليس روبوت. إذا اجتاز الاختبار أعد العداد إلى الصفر وهكذا.