|  | 7 months ago | |
|---|---|---|
| .. | ||
| assets | 7 months ago | |
| config | 7 months ago | |
| src | 7 months ago | |
| LICENCE.md | 7 months ago | |
| LICENSE | 7 months ago | |
| README.md | 7 months ago | |
| composer.json | 7 months ago | |
A simple Laravel 5/6 service provider for including the Captcha for Laravel.
for Laravel 4 Captcha for Laravel Laravel 4
The Captcha Service Provider can be installed via Composer by requiring the
mews/captcha package and setting the minimum-stability to dev (required for Laravel 5) in your
project's composer.json.
{
    "require": {
        "laravel/framework": "5.0.*",
        "mews/captcha": "~2.0"
    },
    "minimum-stability": "stable"
}
or
Require this package with composer:
composer require mews/captcha
Update your packages with composer update or install with composer install.
In Windows, you'll need to include the GD2 DLL php_gd2.dll in php.ini. And you also need include php_fileinfo.dll and php_mbstring.dll to fit the requirements of mews/captcha's dependencies.
To use the Captcha Service Provider, you must register the provider when bootstrapping your Laravel application. There are essentially two ways to do this.
Find the providers key in config/app.php and register the Captcha Service Provider.
    'providers' => [
        // ...
        'Mews\Captcha\CaptchaServiceProvider',
    ]
for Laravel 5.1+
    'providers' => [
        // ...
        Mews\Captcha\CaptchaServiceProvider::class,
    ]
Find the aliases key in config/app.php.
    'aliases' => [
        // ...
        'Captcha' => 'Mews\Captcha\Facades\Captcha',
    ]
for Laravel 5.1+
    'aliases' => [
        // ...
        'Captcha' => Mews\Captcha\Facades\Captcha::class,
    ]
To use your own settings, publish config.
`config/captcha.php`
php return [
'default'   => [
    'length'    => 5,
    'width'     => 120,
    'height'    => 36,
    'quality'   => 90,
    'math'      => true,  //Enable Math Captcha
    'expire'    => 60,    //Captcha expiration
],
// ...
];
### Disable validation:
To disable the captcha validation use `CAPTCHA_DISABLE` environment variable. e.g. **.env** config:
php CAPTCHA_DISABLE=true
## Example Usage
### Session Mode:
php
// [your site path]/Http/routes.php
Route::any('captcha-test', function() {
    if (request()->getMethod() == 'POST') {
        $rules = ['captcha' => 'required|captcha'];
        $validator = validator()->make(request()->all(), $rules);
        if ($validator->fails()) {
            echo '<p style="color: #ff0000;">Incorrect!</p>';
        } else {
            echo '<p style="color: #00ff30;">Matched :)</p>';
        }
    }
    $form = '<form method="post" action="captcha-test">';
    $form .= '<input type="hidden" name="_token" value="' . csrf_token() . '">';
    $form .= '<p>' . captcha_img() . '</p>';
    $form .= '<p><input type="text" name="captcha"></p>';
    $form .= '<p><button type="submit" name="check">Check</button></p>';
    $form .= '</form>';
    return $form;
});
### Stateless Mode:
You get key and img from this url
`http://localhost/captcha/api/math`
and verify the captcha using this method:
php
//key is the one that you got from json response
// fix validator
// $rules = ['captcha' => 'required|captcha_api:'. request('key')];
$rules = ['captcha' => 'required|captcha_api:'. request('key') . ',math'];
$validator = validator()->make(request()->all(), $rules);
if ($validator->fails()) {
    return response()->json([
        'message' => 'invalid captcha',
    ]);
} else {
    //do the job
}
# Return Image
php captcha();
or
php Captcha::create();
# Return URL
php captcha_src();
or
Captcha::src('default');
# Return HTML
php captcha_img();
or
php Captcha::img();
# To use different configurations
php captcha_img('flat');
Captcha::img('inverse'); ``` etc.
Based on Intervention Image
^_^