这里用的是Laravel8。

这里验证码要使用到fileInfo的功能,需要提前让php加载此dll or so,在php.ini中修改:

验证码功能最终实现的效果是:

首先添加相关库:

composer require mews/captcha --ignore-platform-req=ext-fileinfo

其次再生成对应的config文件:

php artisan vendor:publish

输入你那边mews/captcha相关的选项:

我这里是选项11。

默认验证码为9位,这里太多了,看不清,修改下captcha.php

<?phpreturn ['characters' => ['2', '3', '4', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'm', 'n', 'p', 'q', 'r', 't', 'u', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'M', 'N', 'P', 'Q', 'R', 'T', 'U', 'X', 'Y', 'Z'],'default' => ['length' => 5,'width' => 120,'height' => 36,'quality' => 90,'math' => false,'expire' => 60,'encrypt' => false,],............
];

这里default.length的大小本来是9的,我改成了5。

生成对应的Controller

php artisan make:controller CaptchaValidationController

在CaptchaValidationController.php中生成验证码:

<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;class CaptchaValidationController extends Controller
{public function reloadCaptcha(){return response()->json(['captcha'=> captcha_img()]);}
}

这里这个Controller就是验证码服务了。就完成了。

下面是使用。

前端:

JS相关:

<script type="text/javascript">$('#captchaImg').click(function(){$(this).prop('src',"{{captcha_src()}}" + Math.random(1000,9999));});
</script>

HTML相关:

<div class="row"><div class="col" style="max-width: 140px"><img src="{{ captcha_src() }}" id="captchaImg" ></div><div class="col pull-left "><input type="text" autocomplete="off" placeholder="验证码" id="captcha" class="form-control" name="captcha"></div>
</div>

后端:

public function customLogin(Request $request){$request->validate(['email' => 'required|email','password' => 'required|min:6|max:128','captcha' => 'required|captcha']);............
}

这里Laravel自己做了处理,我们只要添加了captcha,就可以了。这里感觉比其他语言少写了好多逻辑判断代码。

Laravel文档阅读笔记-mews/captcha的使用(验证码功能)相关推荐

  1. Qt文档阅读笔记-共享库的创建与调用

    使用共享库的符号 这个符号可以作用在变量.类.函数中,并且这些都可以被调用端使用. 在编译共享库中,需要使用export符号.在使用端调用的时候使用import符号. 这里是本人从文档中记录的笔记,大 ...

  2. Qt文档阅读笔记-加载HeightMap(高度图)构造3D地形图

    Qt文档阅读笔记-加载HeightMap(高度图)构造3D地形图 QHeightMapSurfaceDataProxy:是Q3DSurface的一个基本代理类. 他是专门加载高度图. 高度图是没有X, ...

  3. Qt文档阅读笔记-Rotations Example相关

    Rotations Example文档阅读笔记 使用这种方式,对y轴和z轴进行旋转. QQuaternion yRotation = QQuaternion::fromAxisAndAngle(0.0 ...

  4. FreeRTOS官方指导文档阅读笔记

    FreeRTOS官方指导文档阅读笔记 基于 161204_Mastering_the_FreeRTOS_Real_Time_Kernel-A_Hands-On_Tutorial_Guide.pdf,可 ...

  5. Blockly学习之文档阅读笔记

    文档阅读来源--谷歌官网介绍: https://developers.google.com/blockly/guides/overview 概述 一个用于Web.Android.iOS的可视化代码编辑 ...

  6. Leaflet文档阅读笔记-Quick Start Guide笔记

    目录 网络加载JS和CSS 初始化地图 在地图上做标记 在地图上点击事件获得坐标 个人对这篇文档的体会 网络加载JS和CSS 先要加载css,然后在加载js <link rel="st ...

  7. NiceScroll文档阅读笔记-NiceScroll(3.7.6)基本使用

    前言 官方已经给出很好的文档了.在此本人总结下,方便以后查阅: GitHub - inuyaksa/jquery.nicescroll: nicescroll plugin for jquery - ...

  8. Qt文档阅读笔记-QWebEngineView及QML WebEngineView

    这里主要是最近有给Java Web项目及Qt项目需要混合,自己搞的QtWebEngine没有问题,而用了项目里面的,就有问题,在此阅读下官方资料,看看能不能解决这样莫名其妙的问题,在此记录下本次的阅读 ...

  9. Qt文档阅读笔记-moc工具使用及其理论(moc工具如何添加到makefile中)

    moc(Meta-Object Compiler):用于处理Qt中关于C++的扩展. moc工具读取C++头文件,看看这个头文件里面的类是不是包含Q_OBJECT宏,它会将这个头文件,转换为带有met ...

  10. Java文档阅读笔记-EJB Tutorial

    目录 Introduction to EJB What is EJB Introduction to EJB EJB(Enterprise Java Bean)Java企业组建:用于开发分布式.健全. ...

最新文章

  1. cufflinks基于dataframe数据绘制柱状图(bar plot)、堆叠柱状图(stacked bar plot)
  2. 删除数据库日志sql语句
  3. 怎么操作会导致MySQL锁表
  4. 利用lrz、lsz工具在linux与windows之间传输文件
  5. 在清华听演讲系列音频下载地址收集
  6. kie-api_7.0上的新KIE持久性API
  7. 计算机进入休眠状态后,Win7电脑进入休眠状态后又自动重启该怎么处理
  8. 面试题 03.04. 化栈为队/面试题09. 用两个栈实现队列/232. 用栈实现队列
  9. mysql数据库sql语法_Mysql数据库SQL语句整理
  10. 【AD】AD19/20笔记及快捷键
  11. VS2010开发应用程序读写注册表
  12. 效仿盖茨:PPstream创始人的心路历程
  13. IBM语音识别系统实现错词率重大突破
  14. Java面试锦囊送给你!大厂门槛随便跨!
  15. 简易学生管理系统(C语言)
  16. 从零开始教你成为装机大神
  17. onenote无法打开链接出现错误您的组织策略阻止我们为您完成此操作
  18. Google TPU的发展历程与思考(一)
  19. 柬埔寨攻略―签证、机票
  20. php随机给文字拼音,给文字加上拼音_php

热门文章

  1. android netd firewall 分析,第2章 深入理解Netd
  2. 这台计算机无法连接usb,爱思助手无法连接或者连接超时解决办法
  3. android+桌面+横屏,安卓怎么强制桌面横屏
  4. 【Android 性能优化】应用启动优化 ( 主题背景图片设置 | 设置透明主题背景 | 设置应用启动主题背景、启动后恢复主题 )
  5. html5教程_最好HTML和HTML5教程
  6. 插件效果【网站开发必备】——12款响应式 Lightbox(灯箱)效果插件
  7. 如何提高FPGA的工作频率
  8. 删除页码和从第三页开始有页码
  9. Spring Boot 项目启动的七种方式
  10. Arduino学习笔记