修改添加后端直接验证

 

第三方扩展包 mews/captcha 作为基础来实现 Laravel 中的验证码功能

  1. 安装
  2. 注册
  3. 配置验证码文件
  4. 前端引用
  5. 后端验证

安装前准备(我这边没执行这个,安装成功,但是搜到的文件有写,不清楚原因,先保存。)
 apt-get install php-gd 

 

1 使用Composer安装(如果不想控制版本 去除后面的~2.0,使用的是去掉控制版本的)
 composer require "mews/captcha:~2.0" 

2 注册:

在config/app.php下的providers数组里面追加一下代码
 Mews\Captcha\CaptchaServiceProvider::class, 

**aliases **数组里面追加
 'Captcha' => Mews\Captcha\Facades\Captcha::class, 

在composer命令行下执行
 php artisan vendor:publish 
生成配置文件captcha.php


注:在其他地方有见过
php artisan vendor:publish --provider='Mews\Captcha\CaptchaServiceProvider'
但是测试过没有效果

3 配置验证码文件
config/captcha.php

注:characters 选项是用来显示给用户的所有字符串,
default, flat, mini, inverse 分别是定义的四种验证码类型,你可以在此修改对应选项自定义验证码的长度、背景颜色、文字颜色等属性

 


4 前端引用
<img src="{{captcha_src()}}" style="cursor: pointer"
onclick="this.src='{{captcha_src()}}'+Math.random()">

<img class="thumbnail captcha mt-3 mb-2" src="{{ captcha_src('flat') }}" onclick="this.src='/captcha/flat?'+Math.random()" title="点击图片重新获取验证码">

 

5 后端验证

这里改为可直接验证的或者也可以使用下面的进行全部验证(因为是后台登录,不做注册处理,简单验证)

使用前先添加,不然直接使用 Validator 会报错

 1 use Illuminate\Support\Facades\Validator; 

然后在需要判断的位置加入

1         $data = $request->input();
2         //验证码验证
3         $rules = ['captcha' => 'required|captcha'];
4         $validator = Validator::make($data, $rules);
5         if ($validator->fails())
6         {
7             return response()->json(['msg' => '验证码输入有误','code'=>0]);
8         }    

这样验证就完成啦

 


mews/captcha 是专门为 Laravel 量身定制的扩展包,能很好的兼容 Laravel 生成的注册逻辑。我们只需要在注册的时候,添加上表单验证规则即可:

app/Http/Controllers/Auth/RegisterController.php

protected function validator(array $data)
{
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:6', 'confirmed'],
'captcha' => ['required', 'captcha'],
], [
'captcha.required' => '验证码不能为空',
'captcha.captcha' => '请输入正确的验证码',
]);
}
注:Validator 表单验证的 make () 方法第三个参数是自定义错误提示,这里我们对验证码的错误提示进行自定义。


参考:
1 https://www.jianshu.com/p/a36e7c9dad49
2 https://learnku.com/articles/23704

posted on 2020-09-02 16:27  思君邪  阅读(267)  评论(0编辑  收藏  举报