1、安装
composer require mews/captcha
2、修改配置
在app/config/app.php
配置文件的providers
数组后面加上如下代码
Mews\Captcha\CaptchaServiceProvider::class,
在app/config/app.php
配置文件的aliases
数组后面加上如下代码
'Captcha' => Mews\Captcha\Facades\Captcha::class,
3、刷新与发布配置
php artisan vendor:publish
输入命令之后如果弹出如下提示找到我们需要生成的Captcha
验证码配置文件的数字,输入数字即可生成验证码配置文件
4、打开Config
文件夹可以发现已经生成了Captcha
配置文件
5、前端使用
输出一个src
路径
{{captcha_src()}}
<img src="{{captcha_src()}}" alt="验证码" style="cursor:pointer" onclick="jsvascript:this.src=this.src+'&t='+ Date.parse(new Date)">
输出一端html
代码,直接就是一张图片
注意:原样输出HTML代码需要的是一个花括号加四个感叹号
{!!captcha_img()!!}
<div style="margin-left: 10px;">
{!!captcha_img()!!}
</div>
6、mews/captcha
的验证码是储存在session
中的,如果不开启session
无论如何验证都是提示错误验证码,打开App\Http
目录下的Kernel.php
文件,复制以下代码到$middleware
数组中开启session
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
7、验证
助手函数
$code = request('code');
$valid = captcha_check($code)
验证器
$rule=[
'username'=>'required|exists:manager',
'password'=>'required',
'captcha' => "required|captcha"
],
$message=[
'username.required'=>'请输入用户名',
'username.exists'=>'用户不存在',
'password.required'=>'请输入密码',
'captcha.captcha'=>'验证码不正确'
]
如果验证器的captcha
规则无论如何都是返回true
无法正确验证的时候我们可以在App\Providers
目录下的AppServiceProviders
文件的boot
方法覆盖掉captcha验证规则,也就是自定义验证规则,代码如下
Validator::extend('captcha', function ($attribute, $value, $parameters) {
return captcha_check($value);
});