第三方扩展包 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 后端验证
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

最新文章

  1. sql server 字符串转成日期格式
  2. iOS 3DES加密解密(一行代码搞定)
  3. POJ 1568 Find the Winning Move(极大极小搜索)
  4. Spring aop 实现异常拦截
  5. Web 开发中 9 个有用的提示和技巧
  6. cssreset
  7. PowerBI开发 第五篇:关系的设计
  8. 【Teradata TTU】Windows TTU安装工具列表
  9. 【原创】大数据基础之Hive(2)Hive SQL执行过程之SQL解析过程
  10. Day05 (黑客成长日记) 文件操作系列
  11. VS从数据库表生成Model代码
  12. (转)Awesome GAN for Medical Imaging
  13. 2017ICPC南宁赛区网络赛 Train Seats Reservation (简单思维)
  14. hadoop 常见 命令
  15. 教你用Cordova打包Vue项目
  16. yii---获取当前sql语句
  17. 搜集几个API接口
  18. java多线程实例
  19. Windows 内核漏洞学习—空指针解引用
  20. mysql数据库修改字符编码问题

热门文章

  1. ArrayList源码解析,老哥,来一起复习一哈?
  2. 【BZOJ4173】数学 题解(数论)
  3. 【FZYZOJ】珂神不等式&amp;平角咖啡厅 题解(二分答案)
  4. swift基础_ set get方法 理解
  5. Android布局的一些属性和开关、创建log图片
  6. 教你几招,快速创建 MySQL 五百万级数据,愉快的学习各种优化技巧
  7. 03-java实现循环链表
  8. 使用 .NET Core 3.x 构建 RESTFUL Api
  9. 测试面试题集锦(四)| Linux 与 Python 编程篇(附答案)
  10. myBatis源码解析-反射篇(4)