|
||
---|---|---|
app | ||
db | ||
nginx | ||
redis | ||
.env.example | ||
.gitignore | ||
docker-compose-prod_docker-hub.yml | ||
docker-compose-prod.yml | ||
docker-compose.yml | ||
LICENSE.md | ||
README.md |
О проекте
Захотелось написать свой независимый сервис защиты от роботов. Сервис каптча написан на фреймворке Laravel. Вдохновлялся, а так же брал картинки с проекта Go Captcha.
Зависимости
php 8.3 (модули: redis, gd)
redis
mysql 8
Демострация
Демо сервис каптча: https://captcha-admin-demo.tut-site.net/
Email: demo@tut-site.net
Пароль: demodemo
Демо каптча: https://captcha-demo.tut-site.net/
API
https://captcha-admin-demo.tut-site.net/api-docs/
Javascript клиент для сайта
https://git.kor-elf.net/kor-elf/service-captcha-gui
Как проверять со стороны бэкенда
Для Laravel 10, 11 есть готовый пакет: https://git.kor-elf.net/kor-elf/captcha-rule-for-laravel
Можно установить этот пакет так: composer require kor-elf/captcha-rule-for-laravel
Curl:
curl -X POST 'https://captcha-admin-demo.tut-site.net/api/v1/captcha/{captcha-token}' -H 'private-token: {your-private-token}' -H 'Content-Type: application/json' -d '{"user_agent": "{user-agent}"}' --max-time 10
Где {captcha-token} - токен получил пользователь от сервиса каптча после успешной проверки.
Где {your-private-token} - приватный токен, который мы создали в админке.
Где {user-agent} - передаём user agent от пользователя, который проходил каптчу.
Успешная проверка пользователя вернёт ответ код 200 и status = true. Иначе считаем, что пользователь не прошёл проверку на робота.
Репозиторий с демо
https://git.kor-elf.net/kor-elf/service-captcha-demo