Google предоставляет замечательное средство для борьбы со спамом — reCaptcha
Обычно это просто галочка «Я не робот»
Однако есть возможность не делать даже этого — Invisible reCAPTCHA проверяет пользователя в фоне и только если возникли сомнения отображает окно с дополнительным подтверждением
Подключить невидимую рекапчу очень просто:
Создаем контейнер и подключаем скрипт
1
2
3
|
<div id="recaptcha"></div>
<script src="https://www.google.com/recaptcha/api.js?onload=onloadReCaptchaInvisible&render=explicit"
async defer></script>
|
Настраиваем и пару функций для удобной работы
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
var g_cfg = {
'sitekey': 'your-api-code',
'theme': 'dark',
'size': 'invisible',
'callback': 'grecaptcha_callback',
};
// храним идентификатор
var recaptcha_id;
// функция которую мы вызовим что бы проверить
function gcaptcha_check(callback) {
window.grecaptcha_callback = callback;
window.grecaptcha.execute(recaptcha_id);
}
// если требуется обновить рекапчу, например для еще одной проверки пользователя
function gcaptcha_reset() {
window.grecaptcha.reset(recaptcha_id);
}
// колбек для самой рекапчи
window.onloadReCaptchaInvisible = function () {
recaptcha_id = grecaptcha.render('recaptcha', g_cfg)
};
|
Изначально reCaptcha отображает свой логотип в правом нижнем углу страницы