Вопросы, связанные с Google reCaptcha v3 - PullRequest
0 голосов
/ 26 января 2019

Я хотел интегрировать reCaptcha в веб-сайт и немного запутался, по поводу того, что он работает.

Вот как я настроил:

  1. Добавлен этот код в голову:

    <script src='https://www.google.com/recaptcha/api.js?render=SITE_KEY></script>
    
  2. Использовал этот код при загрузке страницы для получения ответа reCaptcha

<script>
grecaptcha.ready(function() {
grecaptcha.execute('SITE_KEY', {action: 'register'})
.then(function(token) {
  jQuery('#recaptcha').val(token);
});
});
</script>
  1. Используйте этот код для проверки ответа с картинки

    $secret = 'SECRET_KEY';
    $verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['recaptcha']);
    $responseData = json_decode($verifyResponse);
    if($responseData->success){
        //valid response, move forward
    }else{
        //captcha check failed, throw an error
    }
    

Мне кажется, это нормально работает, и я получаю 0,9 балла за свои запросы.

Проблема: Предположим, что капча не выполнена для действительного запроса пользователя по какой-либо причине (например, ip использовался для рассылки спама или любая другая проверка Google не прошла проверку). Но пользователь легитимен так:

  1. как пользователь может доказать свою человечность? (как в предыдущей версии флажка)
  2. если пользователь загружает регистрационную форму и выполняет другие действия, пользователь возвращается через некоторое время (например, через 10 минут). Когда пользователь попытается отправить форму, проверка капчи не будет выполнена. (Я попробовал это и получил сообщение об ошибке «timeout-or-duplicate»)
  3. Есть ли способ перезагрузить капчу без перезагрузки страницы?

Пожалуйста, дайте мне знать, как преодолеть эти проблемы?

1 Ответ

0 голосов
/ 08 февраля 2019

Добавьте reCAPTCHA V2 с V3.Если V3 не удается.Используйте V2 для проверки пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...