Google reCAPTCHA v3

06.06.2021 | 237 | Bitrix Laravel

Пример использования капчи от гугла третьей версии

Необходимо получить секретный и публичные ключи в сервисе "гугла" тут:
https://www.google.com/recaptcha/admin/

Серверная (бэкендовая) часть: $recaptcha_key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; $recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify'; $recaptcha_params = [ 'secret' => $recaptcha_key, 'response' => $_POST['recaptcha_response'], 'remoteip' => $_SERVER['REMOTE_ADDR'], ]; $ch = curl_init($recaptcha_url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $recaptcha_params); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($ch); if (!empty($response)) { $decoded_response = json_decode($response); } $recaptcha_success = false; if ($decoded_response && $decoded_response->score > 0) { $recaptcha_success = $decoded_response->score; $arResult["TYPE"] = "OK"; } else { $arResult["TYPE"] = "ERROR"; } Фронтовая (шаблонная часть): <input type="hidden" name="recaptcha_response" id="recaptchaResponse"> <script src="https://www.google.com/recaptcha/api.js? onload=onloadCallbackRecap&render=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" async defer></script> <script> var onloadCallbackRecap = function () { grecaptcha.ready(function () { grecaptcha.execute('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', { action: 'contact_callback' }).then(function (token) { var recaptchaResponse = document.getElementById('recaptchaResponse'); recaptchaResponse.value = token; }); }); }; </script> Стилистика для скрытия лейбла .grecaptcha-badge{ display: none!important; }

← Назад

Комментарии (0)