Simple captcha with optional goodies for Laravel.
composer require zablose/captcha
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.
If standard auth is in use, add captcha to your login form like in the login.blade.php template.
If standard auth is in use, overwrite method validateLogin
like in
LoginController class.
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!
Check submodule readme for more details about development environment used.
Append to /etc/hosts
.
127.0.0.26 captcha.zdev
$ 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