невидимая реплика «Мы обнаружили, что ваш сайт не проверяет решения reCAPTCHA» - PullRequest
0 голосов
/ 04 мая 2018

Я внедряю невидимую recaptcha на странице входа в систему на моем сайте, следуя официальному руководству о том, как «Автоматически связать вызов с кнопкой»: https://developers.google.com/recaptcha/docs/invisible#auto_render

Моя HTML-страница создана следующим образом:

    <head>
[...]
        <script src="js/login.js"></script>
        <script src="https://www.google.com/recaptcha/api.js" async defer></script>
    </head>
    <body>
[...]
            <button type="submit" class="g-recaptcha btn btn-primary" data-sitekey="[...]" data-callback="checkCaptcha" id="loginSubmit">Login <i class="fas fa-sign-in-alt"></i></button>
[...]
    </body>
    </html>

в то время как файл javascript:

    function checkCaptcha(token) {
        console.log("re-captcha callback invoked.");
        login();
    }


    function login() {
[...]
}

Но на странице панели Google я продолжаю получать сообщение «Мы обнаружили, что ваш сайт не проверяет решения reCAPTCHA. Это необходимо для правильного использования reCAPTCHA на вашем сайте. Дополнительные сведения см. На нашем сайте для разработчиков».

Может ли кто-нибудь помочь мне понять, в чем я не прав?

Большое спасибо за совет.

1 Ответ

0 голосов
/ 07 мая 2018

Когда пользователь решает загадку капчи (или нажимает на кнопку отправки) на вашей html-странице, Google recaptcha добавляет другое скрытое значение ввода к вашему <form> с именем g-recaptcha-response или анализирует данную функцию data-callback. Он содержит строковое значение, которое вы должны отправить обратно в Google, чтобы проверить ответ со стороны сервера.

Без проверки на стороне сервера recaptcha бесполезен. Подробности запроса API:

URL: https://www.google.com/recaptcha/api/siteverify
МЕТОД: ПОЛУЧИТЬ / ПОСТ (Рекомендуется)

Параметры:

  • секрет (Требуется. Общий ключ между вашим сайтом и reCAPTCHA.)
  • ответ (Обязательно. Маркер ответа пользователя, предоставленный reCAPTCHA, проверяющего пользователя на вашем сайте.)
  • remoteip (Необязательно. IP-адрес пользователя.)

Прочтите документацию Google по Проверка ответа пользователя , чтобы узнать больше.

...