zablose / captcha
Simple captcha with optional goodies for Laravel.
Installs: 6 604
Dependents: 0
Suggesters: 0
Security: 0
Stars: 7
Watchers: 2
Forks: 2
Open Issues: 0
Requires
- php: >=8.2
- ext-gd: *
Requires (Dev)
- ext-pdo: *
- fakerphp/faker: ^1.24.1
- laravel/framework: ^12.20.0
- laravel/tinker: ^2.10.1
- laravel/ui: ^4.6.1
- mockery/mockery: ^1.6.12
- nunomaduro/collision: ^8.8.2
- phing/phing: ^3.0.1
- phpunit/phpunit: ^11.5.27
README
Captcha
Simple captcha with optional goodies for Laravel.
Installation
composer require zablose/captcha
Usage with Laravel
New Route & Captcha Types
Check new route is working, by visiting /captcha
or /captcha/{type}
.
Captcha | Type | Dev Link |
---|---|---|
![]() |
default | /captcha/default |
![]() |
small | /captcha/small |
![]() |
invert | /captcha/invert |
![]() |
sharpness | /captcha/sharpness |
![]() |
blur | /captcha/blur |
![]() |
contrast | /captcha/contrast |
![]() |
no-angle | /captcha/no-angle |
![]() |
bg-color | /captcha/bg-color |
Look at the config file for more details.
Login Form
If standard auth is in use, add captcha to your login form like in the login.blade.php template.
Validation
If standard auth is in use, overwrite method validateLogin
like in
LoginController class.
Basic Usage
In case you are not a happy Laravel user, you may still use this package.
Create captcha, add details to the session and output the image.
A code may look like:
<?php require __DIR__ . '/../vendor/autoload.php'; use Zablose\Captcha\Captcha; use Zablose\Captcha\Config; use Zablose\Captcha\Image; $captcha = new Captcha( new Image( (new Config())->update(['invert' => true, 'width' => 220]) ) ); $data = [ 'captcha' => [ 'sensitive' => $captcha->isSensitive(), 'hash' => $captcha->hash(), ], ]; // Add $data to the session. echo $captcha->toPng();
To check captcha use:
<?php use Zablose\Captcha\Captcha; // ... Captcha::verify('captcha', 'hash');
Feel the joy and happiness!
Development
Check submodule readme for more details about development environment used.
Hosts
Append to /etc/hosts
.
127.0.0.26 captcha.zdev
Quick Start
$ git clone -b 'dev' --single-branch --depth 1 https://github.com/zablose/captcha.git captcha
$ cd captcha
$ git submodule update --init
# Copy env file, then ammend it to your needs.
$ cp .env.example .env
$ docker compose up -d
# To "enter" container, using Bash shell.
$ docker exec -u debian -it captcha-php-fpm bash
(captcha-php-fpm)$ phpunit