Пользователям нужно нажать кнопку «Я не робот» или провести "слайдер", чтобы доказать, что они люди(внешний вид выбирается по ключу в личном кабинете). В невидимой версии не будет встроенного окна с капчей, по которому пользователи могут щелкнуть. Это совершенно незаметно! Будет отображаться значок в нижней части страницы, чтобы намекнуть пользователям, что ваш веб-сайт использует эту технологию. (Значок можно скрыть, но не рекомендуется.)
composer require pris/darklyy-yandex-smart-captcha
Для начала вам необходимо получить публичные и приватны ключи.
Когда вы получили ключи добавьте их в .env
// обязательно
YANDEX_SMART_CAPTCHA_SITE_KEY={site_key}
YANDEX_SMART_CAPTCHA_SECRET_KEY={server_key}
// опционально
YANDEX_SMART_CAPTCHA_TEST=false
YANDEX_SMART_CAPTCHA_SHIELD_POSITION='center-right'
YANDEX_SMART_CAPTCHA_HIDE_SHIELD=false
YANDEX_SMART_CAPTCHA_TIMEOUT=1
YANDEX_SMART_CAPTCHA_TESTв значении true переводит в тестовый режим. Будет отображена надпись "тестовый режим" и ВСЕГДА будет запрашиваться дополнительное задание для подтверждения, что Вы человек. Дополнитльное задание, так же как и вид капчи, выбирается при формировании публичных и приватных ключи
YANDEX_SMART_CAPTCHA_SHIELD_POSITIONотвечает за расположение блока информации об использовании капчи, при условии что капча скрыта. Вы можете выбрать следущие расположение:top-left|center-left|bottom-left|top-right|center-right|bottom-right
Если вы установите
YANDEX_SMART_CAPTCHA_HIDE_SHIELDв значение true, вы можете скрыть логотип значка, информирующий о использовании капчи.
YANDEX_SMART_CAPTCHA_TIMEOUTвремя таймаутаGuzzleклиента для проверки капчи
Перед визуализацией капчи помните об этих замечаниях:
render() должна вызываться внутри формы.type вашей кнопки отправки должен быть submit.@smartcaptcha
// или
{!! app('smartcaptcha')->render() !!}
Директива принимает следущие параметры
ru. Другие варианты: ru | en | be | kk | tt | uk | uz | trfalse. Если указывать true, то капча будет невидимаяsmartCaptchaContainer. В данном контейнере будет отображаться капчаsmartCaptchaFunc. Данная функция отвечает за инициализацию капчи@smartcaptcha([
'lang' => 'ru',
'invisible' => true ,
'idContainer' => 'newNameContainer' ,
'functionName' => 'newFuncName'
])
// или
{!! app('smartcaptcha')->render([
'lang' => 'ru',
'invisible' => true,
'idContainer' => 'newNameContainer',
'functionName' => 'newFuncName',
]) !!}
Добавьте 'smart-token' => 'required|smartcaptcha' в массив правил.
$validate = Validator::make(Input::all(), [
'smart-token' => 'required|smartcaptcha'
]);
Используйте эту функцию только тогда, когда вам нужно взять на себя все управление после нажатия кнопки отправки. Проверка SmartCaptcha не будет запущена, если вы вернете false в этой функции.
_beforeSubmit = function(e) {
console.log('submit button clicked.');
// ваш код
return false;
}
Если вы хотите настроить функцию отправки, например: сделать что-то после нажатия кнопки отправки или изменить отправку на вызов ajax и т. д.
Единственное, что вам нужно сделать, это реализовать _submitEvent в javascript.
_submitEvent = function() {
console.log('submit button clicked.');
// ваш код
_submitForm();
}
Вот пример использования отправки ajax (с использованием jquery)
_submitEvent = function() {
$.ajax({
type: "POST",
url: "{{route('message.send')}}",
data: {
"name": $("#name").val(),
"email": $("#email").val(),
"content": $("#content").val(),
// важный! не забудьте отправить `smart-token`
"smart-token": $('[name="smart-token"]').val(),
},
dataType: "json",
success: function(data) {
// успех
},
error: function(data) {
// ошибка
}
});
};