yandex-captcha-filament
Описание
Интеграция Yandex SmartCaptcha для Laravel Filament v4. Защитите формы от ботов с помощью современной капчи: поддержка светлой/тёмной темы, 8 языков, невидимый режим, автоматическая валидация. Простая установка через Composer, гибкая настройка, готовые примеры. Идеально для форм входа, регистрации и обратной связи.
Языки
- PHP79,8%
- Blade20,2%
🛡️ Yandex SmartCaptcha для Filament

Защита от ботов для Laravel Filament v4
Улучшите безопасность Filament-приложений с Yandex SmartCaptcha - интеллектуальной системой верификации
🔗 GitHub Repository: https://github.com/tigusigalpa/yandex-captcha-filament
🌐 Язык: Русский | English
🚀 Начало работы • 📜 Документы • 💡 Применение • 🤝 Вклад
✨ Основные функции
🎨 Элегантный дизайн
|
🔐 Корпоративная защита
|
🌍 Глобальное покрытие
|
⚙️ Гибкие настройки
|
📋 Содержание
- Требования
- Установка
- Быстрый старт
- Конфигурация
- Примеры использования
- Расширенные возможности
- Справочник API
- Решение проблем
- Участие в проекте
- Лицензия
🎯 Требования
| Требование | Версия |
|---|---|
| PHP | ^8.1 |
| Laravel | ^10.0 | ^11.0 | ^12.0 |
| Filament | ^4.0 |
| Базовый пакет | tigusigalpa/yandex-smartcaptcha-php ^1.0 |
📦 Руководство по установке
Шаг 1: Добавление пакета через Composer
Шаг 2: Экспорт файла конфигурации
Это сгенерирует с параметрами настройки.
Шаг 3: Получение учётных данных Yandex SmartCaptcha
3.1. Настройка Yandex Cloud
- Перейдите в Консоль Yandex Cloud
- Авторизуйтесь или зарегистрируйте профиль
- Проверьте активность платёжного аккаунта (бесплатный план доступен)
3.2. Создание экземпляра капчи
- Откройте панель Yandex SmartCaptcha
- Выберите Создать капчу
- Укажите параметры:
- Метка:
(настраиваемо)my-app-captcha - Разрешённые домены: Домен вашего сайта (например,
)example.com - Метод проверки: Флажок или Слайдер
- Формат задания: Текстовая головоломка
- Уровень сложности: Лёгкий, Средний или Сложный
- Метка:
- Подтвердите создание
3.3. Получение API-ключей
- Откройте настройки капчи
- Перейдите в раздел Обзор
- Извлеките оба ключа:
- Ключ клиента (фронтенд-интеграция)
- Ключ сервера (бэкенд-валидация)
Шаг 4: Настройка окружения
Добавьте в файл :
🚀 Быстрый старт
Простая реализация
Интегрируйте проверку капчи в формы Filament:
Готово! 🎉 Компонент обрабатывает:
- ✅ Отрисовку виджета
- ✅ Проверку ввода пользователя
- ✅ Управление ошибками
- ✅ Адаптацию тем
⚙️ Конфигурация
Настройка окружения
Файл конфигурации
Файл предоставляет полный контроль:
💡 Примеры использования
1️⃣ Форма обратной связи
2️⃣ Защита страницы аутентификации
Активируйте в конфигурации панели:
3️⃣ Расширенная конфигурация
4️⃣ Реализация скрытого режима
Подходит для форм подписки и минималистичных интерфейсов:
5️⃣ Обработчики событий
Добавьте JavaScript функции:
🎨 Расширенные возможности
Поддерживаемые языки
| Язык | Код | Язык | Код |
|---|---|---|---|
| 🇷🇺 Русский | | 🇺🇦 Украинский | |
| 🇬🇧 Английский | | 🇺🇿 Узбекский | |
| 🇧🇾 Белорусский | | 🇹🇷 Турецкий | |
| 🇰🇿 Казахский | | 🇷🇺 Татарский | |
Поддержка тем
Тестовые режимы
Идеально для разработки и тестирования:
Или через окружение:
Кастомные сообщения валидации
Опубликуйте переводы:
Отредактируйте :
Кастомные представления
Опубликуйте представления для полной кастомизации:
Отредактируйте
📚 Справочник API
Методы компонента YandexCaptcha
| Метод | Описание | Пример |
|---|---|---|
| Установить клиентский ключ | |
| Установить секретный ключ | |
| Установить язык виджета | |
| Установить тему (light/dark) | |
| Включить невидимый режим | |
| Скрыть после успеха | |
| Callback успеха | |
| Callback ошибки | |
| Callback сетевой ошибки | |
| Установить тестовый режим | |
Правило валидации
Используйте правило валидации отдельно в любой форме Laravel:
🔧 Решение проблем
Виджет капчи не отображается
Возможные причины:
-
❌ Неверный клиентский ключ
-
❌ Домен не в белом списке
- Перейдите в Консоль Yandex Cloud
- Добавьте ваш домен в разрешённые
- Или отключите проверку домена
-
❌ Ошибки JavaScript
- Откройте консоль браузера (F12)
- Проверьте наличие ошибок
- Убедитесь, что блокировщики рекламы не мешают
Валидация всегда проваливается
Возможные причины:
-
❌ Неверный секретный ключ
-
❌ Токен истёк
- Токены истекают через 5 минут
- Пользователь должен пройти капчу перед отправкой
-
❌ Проблемы с сетью
- Включите логирование для просмотра детальных ошибок:
- Проверьте логи Laravel: storage/logs/laravel.log
Режим разработки
Для тестирования без реальной проверки капчи:
⚠️ Не забудьте вернуть на продакшене!
Получение помощи
📁 Структура проекта
yandex-captcha-filament/
├── 📂 src/
│ ├── FilamentYandexCaptchaPlugin.php # Основной плагин
│ ├── FilamentYandexCaptchaServiceProvider.php # Сервис-провайдер
│ ├── 📂 Forms/Components/
│ │ └── YandexCaptcha.php # Компонент формы
│ └── 📂 Rules/
│ └── YandexCaptchaRule.php # Правило валидации
│
├── 📂 resources/
│ ├── 📂 lang/ # Переводы
│ │ ├── 📂 en/
│ │ │ └── validation.php
│ │ └── 📂 ru/
│ │ └── validation.php
│ └── 📂 views/ # Blade шаблоны
│ └── forms/components/
│ └── yandex-captcha.blade.php
│
├── 📂 config/
│ └── yandex-captcha-filament.php # Конфигурация
│
├── 📂 examples/ # Примеры использования
│ ├── BasicFormExample.php
│ ├── AdvancedFormExample.php
│ ├── LoginFormExample.php
│ ├── RegistrationFormExample.php
│ ├── InvisibleCaptchaExample.php
│ └── CustomCallbacksExample.php
│
├── 📄 README.md # Документация (RU)
├── 📄 README-en.md # Документация (EN)
├── 📄 CHANGELOG.md # История версий
├── 📄 CONTRIBUTING.md # Руководство по участию
├── 📄 LICENSE # Лицензия MIT
└── 📄 composer.json # Метаданные пакета
🤝 Участие в проекте
Мы приветствуем вклад в проект! Вот как вы можете помочь:
Способы участия
- 🐛 Сообщайте об ошибках - Открывайте issue
- 💡 Предлагайте функции - Делитесь идеями
- 📖 Улучшайте документацию - Исправляйте опечатки, добавляйте примеры
- 🔧 Отправляйте PR - Исправляйте баги, добавляйте функции
Настройка для разработки
Стандарты кодирования
- ✅ Следуйте PSR-12
- ✅ Добавляйте тесты для новых функций
- ✅ Обновляйте документацию
- ✅ Пишите понятные commit-сообщения
Процесс Pull Request
- Сделайте fork репозитория
- Создайте ветку функции (
)git checkout -b feature/amazing-feature - Закоммитьте изменения (
)git commit -m 'Add amazing feature' - Отправьте в ветку (
)git push origin feature/amazing-feature - Откройте Pull Request
📄 Лицензия
Этот пакет является программным обеспечением с открытым исходным кодом, лицензированным по лицензии MIT.
MIT License
Copyright (c) 2025 Igor Sazonov
Данная лицензия разрешает лицам, получившим копию данного программного
обеспечения и сопутствующей документации, безвозмездно использовать
программное обеспечение без ограничений, включая неограниченное право
на использование, копирование, изменение, слияние, публикацию,
распространение, сублицензирование и/или продажу копий программного
обеспечения.
🙏 Благодарности
- Yandex Cloud за сервис SmartCaptcha
- Filament за потрясающую админ-панель
- Laravel за фантастический фреймворк
- Всем участникам и пользователям этого пакета
🔗 Ссылки
- 📦 Пакет: tigusigalpa/yandex-captcha-filament
- 🐙 GitHub: tigusigalpa/yandex-captcha-filament
- 🔧 Базовый пакет: tigusigalpa/yandex-smartcaptcha-php
- 📚 Yandex SmartCaptcha: Официальная документация
- 🎨 Filament: Официальный сайт
👨💻 Автор
Игорь Сазонов
- 🐙 GitHub: @tigusigalpa
- 📧 Email: sovletig@gmail.com
- 🌐 Сайт: GitHub Profile
💖 Поддержка
Если этот пакет оказался полезным, пожалуйста:
- ⭐ Поставьте звезду репозиторию
- 🐛 Сообщайте об ошибках и проблемах
- 💡 Предлагайте новые функции
- 📖 Улучшайте документацию
- 🔄 Делитесь с другими
Сделано с ❤️ для сообщества Laravel и Filament