Для добавления CAPTCHA в Laravel, вы можете воспользоваться рядом популярных пакетов, таких как "greggilbert/recaptcha" или "anhskohbo/no-captcha". Давайте рассмотрим, как это можно сделать с использованием "greggilbert/recaptcha".
Установите пакет "greggilbert/recaptcha" через Composer:
composer require greggilbert/recaptcha
Зарегистрируйте сервис-поставщика в файле config/app.php
. Добавьте следующую строку в массив providers
:
Greggilbert\Recaptcha\RecaptchaServiceProvider::class,
Опубликуйте конфигурационный файл и предоставьте свой ключ и секрет CAPTCHA. Выполните следующую команду:
php artisan vendor:publish --provider="Greggilbert\Recaptcha\RecaptchaServiceProvider"
Теперь вы можете настроить ключ и секрет CAPTCHA в файле config/recaptcha.php
.
Используйте CAPTCHA в формах представлений. Пример представления с использованием CAPTCHA:
<form action="/submit" method="post">
@csrf
<!-- Другие поля формы -->
{!! app('captcha')->display() !!}
<button type="submit">Отправить</button>
</form>
В контроллере проверьте, прошла ли CAPTCHA проверку, с помощью метода check
:
use Greggilbert\Recaptcha\Rules\RecaptchaRule;
public function submit(Request $request)
{
$this->validate($request, [
// Другие правила валидации
'g-recaptcha-response' => ['required', new RecaptchaRule],
]);
// Если код дойдет сюда, CAPTCHA пройдена успешно
// Обработайте запрос и верните ответ
}
Теперь у вас есть CAPTCHA в ваших формах, и вы можете использовать ее для защиты от спама и ботов.
Автор: Евгений Морковин
1 комментарий
Спасибо автору за информацию!