Я стремлюсь использовать ReCaptcha v3 для входа в систему и прочее, но я не уверен, что делать с «низким рейтингом», не безопасно отказывать в доступе, когда пользователь не может двигаться вперед. То, что кажется более полным решением, - это объединить «рейтинг» от v3 с проблемой головоломки от v2, если оценка слишком низкая. Как другие люди подходят к этому вопросу?
Кроме того, похоже, что v3 grecaptcha.execute
возвращает аналогичный результат для v2, то есть, это также означает, что он не возвращает рейтинг, просто TOKEN
, который проверен аналогично v2?
У меня есть код, который я обнаружил, чтобы продемонстрировать, что они могут быть использованы в одном и том же HTML ...
<!-- https://github.com/google/recaptcha/issues/279 -->
<script src="https://www.google.com/recaptcha/api.js?onload=v2_onload"></script>
<script src="https://www.google.com/recaptcha/api.js?onload=v3_onload&render=V3_SITE_KEY"></script>
<script src='https://www.google.com/recaptcha/api.js?render=V3_SITE_KEY'></script>
<div class="g-recaptcha" data-size="invisible" data-sitekey="V2_SITE_KEY" data-callback="v2_callback"></div>
<script type="text/javascript">
function v2_onload() { console.log('v2 loaded'); }
function v3_onload() { console.log('v3 loaded'); }
function v2_callback(token) { console.log('v2 token: ' + token); }
function v3_callback(token, score) { console.log('v3 token: ' + token + " ----- " + score); }
// call these manually
function test_v2() { grecaptcha.execute(); }
function test_v3() {
grecaptcha.execute('V3_SITE_KEY' , {action:'thisIsATest' }).then(v3_callback);
}
У меня есть опасения, что если v3 требует проверки на стороне сервера, то для реализации v2 либо перезагрузите страницу, чтобы вызвать v2 (когда серверная сторона говорит «низкий рейтинг», то перезагрузите и включите v2) ИЛИ отключите v3 проверка на стороне может быть выполнена с помощью вызова ajax, но это похоже на что-то, что может быть проверено и обработано ботом (возьмите ответ ajax, измените «нет» на «да», а затем заставьте бота вызывать саму функцию «обратного вызова») получить доступ)
любая помощь или предложения будут оценены.