Downloads
Stars
Version
Расширение валидатора фреймворка Laravel 9.x для использования Google reCAPTCHA v3. Выполняет запрос к сервису об оценке действий пользователя без его участия для блокирования отправки форм ботами, которые чаще всего спамят.
Перед использованием пакета зарегистрируйтесь и получите Ключ и Секретный ключ: https://g.co/recaptcha/v3.
Для добавления зависимости в проект на Laravel, используйте менеджер пакетов Composer:
composer require russsiq/laravel-grecaptcha
Если в вашем приложении включен отказ от обнаружения пакетов в директиве dont-discover
в разделе extra
файла composer.json
, то необходимо самостоятельно добавить следующее в файле config/app.php
:
providers
:Russsiq\GRecaptcha\GRecaptchaServiceProvider::class,
aliases
:'GRecaptcha' => Russsiq\GRecaptcha\Support\Facades\GRecaptcha::class,
Публикация (копирование) всех доступных файлов для переопределения и тонкой настройки пакета осуществляется через интерфейс командной строки Artisan:
php artisan vendor:publish --provider="Russsiq\GRecaptcha\GRecaptchaServiceProvider"
Помимо этого, доступна групповая публикация файлов по отдельным меткам config
, fonts
, lang
, views
:
php artisan vendor:publish --provider="Russsiq\GRecaptcha\GRecaptchaServiceProvider" --tag=config --force
php artisan vendor:publish --provider="Russsiq\GRecaptcha\GRecaptchaServiceProvider" --tag=fonts --force
php artisan vendor:publish --provider="Russsiq\GRecaptcha\GRecaptchaServiceProvider" --tag=lang --force
php artisan vendor:publish --provider="Russsiq\GRecaptcha\GRecaptchaServiceProvider" --tag=views --force
Вставьте Ключ и Секретный ключ в соответствующие поля в файле config/g_recaptcha.php
вашего проекта.
Помимо капчи от Google расширение поддерживает пустой драйвер и драйвер капчи, основанный на вводе четырехзначного кода. Выбор выполняется в файле конфигурации расширения config/g_recaptcha.php
:
return [
// Драйвер, используемый по умолчанию.
// Поддерживаемые типы: `nullable`, `image_code`, `google_v3`.
'driver' => env('GRECAPTCHA_DRIVER', 'google_v3'),
// Настройки драйверов.
'drivers' => [
// ...code
],
];
Добавьте скрытое поле в обрабатываемую форму, используя директиву @g_recaptcha_input
. Например:
@error ('g-recaptcha-response')
<div class="alert alert-danger" role="alert">
@lang('g_recaptcha::g_recaptcha.messages.fails')
</div>
@enderror
<form action="/profile" method="POST">
@csrf
@if (config('g_recaptcha.used'))
<div class="form-group row">
<div class="col-md-4">
@g_recaptcha_input
</div>
</div>
@endif
<!-- ...code -->
</form>
Добавьте JavaScript в главный шаблон перед закрывающим тегом </body>
, используя директиву @g_recaptcha_script
.
Обе директивы могут принимать по одному входящему параметру, в котором можно указать относительные пути на расположение шаблонов.
После отправки формы и в случае применения асинхронного запроса (AJAX), для обновления скрытого поля используйте JavaScript функцию grecaptcha_reload();
.
Обе директивы не являются обязательным к использованию: вы можете самостоятельно сформировать как скрытое поле, так и логику JavaScript.
/**
* Получить массив правил валидации,
* которые будут применены к запросу.
* @return array
*/
public function rules(): array
{
return [
'title' => [
// ...code
],
'body' => [
// ...code
],
'g-recaptcha-response' => [
'bail',
config('g_recaptcha.used') ? 'required' : 'nullable',
'string',
'g_recaptcha',
],
];
}
Для запуска тестов используйте команду:
composer run-script test
Для запуска тестов и формирования agile-документации, генерируемой в HTML-формате и записываемой в файл tests/testdox.html, используйте команду:
composer run-script testdox
Для удаления пакета из вашего проекта на Laravel используйте команду:
composer remove russsiq/laravel-zipper
laravel-grecaptcha
– программное обеспечение с открытым исходным кодом, распространяющееся по лицензии MIT.