mews / captcha
Laravel 5/6/7/8/9/10/11 验证码包
Requires
- php: ^7.2|^8.1|^8.2|^8.3
- ext-gd: *
- illuminate/config: ~5|^6|^7|^8|^9|^10|^11
- illuminate/filesystem: ~5|^6|^7|^8|^9|^10|^11
- illuminate/hashing: ~5|^6|^7|^8|^9|^10|^11
- illuminate/session: ~5|^6|^7|^8|^9|^10|^11
- illuminate/support: ~5|^6|^7|^8|^9|^10|^11
- intervention/image: ^3.7
Requires (Dev)
- mockery/mockery: ^1.0
- phpunit/phpunit: ^8.5|^9.5.10|^10.5
- dev-master
- 3.4.3
- 3.4.2
- 3.4.1
- 3.4.0
- 3.3.3
- 3.3.2
- 3.3.1
- 3.3.0
- 3.2.10
- v3.2.9
- 3.2.8
- 3.2.7
- 3.2.6
- 3.2.5
- 3.2.4
- 3.2.3
- 3.2.2
- 3.2.1
- 3.2.0
- 3.1.1
- 3.1.0
- 3.0.2
- 3.0.1
- 3.0.0
- 2.3.0
- 2.2.9
- 2.2.8
- 2.2.7
- 2.2.6
- 2.2.5
- 2.2.4
- 2.2.3
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.8
- 2.1.7
- v2.1.6
- v2.1.5
- v2.1.4
- v2.1.3
- v2.1.2
- v2.1.1
- 2.1.0
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.0.2
- 1.0.1
- dev-master-l5-l9
- dev-dev
- dev-revert-146-master
- dev-master-l4
This package is auto-updated.
Last update: 2024-09-10 05:47:23 UTC
README
一个简单的Laravel 5/6服务提供者,用于包含Captcha for Laravel。
适用于Laravel 4 Captcha for Laravel Laravel 4
适用于Laravel 5至9 Captcha for Laravel Laravel 4
预览
安装
可以使用Composer通过要求mews/captcha
包,并将你的项目composer.json
中的minimum-stability
设置为dev
(适用于Laravel 5)来安装Captcha服务提供者。
{ "require": { "laravel/framework": "5.0.*", "mews/captcha": "~3.0" }, "minimum-stability": "stable" }
或者
使用composer要求此包
composer require mews/captcha
使用composer update
更新你的包或使用composer install
安装。
在Windows上,您需要在php.ini中包含GD2 DLL php_gd2.dll
。您还需要包含php_fileinfo.dll
和php_mbstring.dll
以满足mews/captcha依赖项的要求。
用法
要使用Captcha服务提供者,您必须在启动Laravel应用程序时注册提供者。有几种基本方法可以做到这一点。
在config/app.php
中找到providers
键并注册Captcha服务提供者。
'providers' => [ // ... 'Mews\Captcha\CaptchaServiceProvider', ]
对于Laravel 5.1+
'providers' => [ // ... Mews\Captcha\CaptchaServiceProvider::class, ]
在config/app.php
中找到aliases
键。
'aliases' => [ // ... 'Captcha' => 'Mews\Captcha\Facades\Captcha', ]
对于Laravel 5.1+
'aliases' => [ // ... 'Captcha' => Mews\Captcha\Facades\Captcha::class, ]
对于Laravel 11:您无需添加别名,它将自动添加。
配置
自定义设置
要使用自己的设置,发布配置。
$ php artisan vendor:publish
config/captcha.php
return [ 'default' => [ 'length' => 5, 'width' => 120, 'height' => 36, 'quality' => 90, 'math' => true, //Enable Math Captcha 'expire' => 60, //Captcha expiration ], // ... ];
禁用验证
要禁用验证码验证,请使用CAPTCHA_DISABLE
环境变量。例如:.env配置
CAPTCHA_DISABLE=true
示例用法
会话模式
// [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; });
Laravel方式视图文件中的详细示例
//register.blade.php <img src="{{ captcha_src() }}" alt="captcha"> <div class="mt-2"></div> <input type="text" name="captcha" class="form-control @error('captcha') is-invalid @enderror" placeholder="Please Insert Captch" > @error('captcha') <div class="invalid-feedback">{{ $message }}</div> @enderror
控制器文件
Validator::make($input, [ 'name' => ['required', 'string', 'max:255'], 'email' => [ 'required', 'string', 'email', 'max:255', Rule::unique(User::class), ], 'password' => $this->passwordRules(), 'captcha' => 'required|captcha' ])->validate();
无状态模式
从此URL http://localhost/captcha/api/math
获取密钥和图片,并使用此方法验证验证码
//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 }
返回图片
captcha();
或者
Captcha::create();
返回URL
captcha_src();
或者
Captcha::src('default');
返回HTML
captcha_img();
或者
Captcha::img();
使用不同的配置
captcha_img('flat'); Captcha::img('inverse');
等。
^_^