Laravel – 验证码(captcha)

Laravel – 验证码(captcha)

  • 本人感觉用的比较好的验证码包,拿出来分享一下,傻瓜式教程,
  • 安装步骤:
    • 首先,登录网址packagist.org查找 laravel captcha,找到mews/captcha ,根据packagist上的使用方法一步步来实现验证码的安装。
    • composer安装:
      composer require mews/captcha
      

    • 注册providers (config/app.php) ,在这个数组中的最后追加如下代码:
      Mews\Captcha\CaptchaServiceProvider::class,
      

    • 注册aliases (config/app.php),在这个数组中的最后追加如下代码:
      'Captcha' => Mews\Captcha\Facades\Captcha::class,
      

    • 生成配置文件,在Composer命令行中输入如下命令:
      php artisan vendor:publish
      

    • 进入config/captcha.php 文件,修改default 数组 可以对验证码进行样式、数量、大小上的修改。
      'default'   => [
      'length'    => 5,
      'width'     => 100,
      'height'    => 34,
      'quality'   => 90,
      ],

  • 页面中使用:
<div class="row">
    <div class="col-md-8">
        <input type="text" class="form-control {
    {$errors->has('captcha')?'parsley-error':''}}" name="captcha" placeholder="captcha">
    </div>
    <div class="col-md-4">
        <img src="{
    {captcha_src()}}" style="cursor: pointer" οnclick="this.src='{
    {captcha_src()}}'+Math.random()">
    </div>
    @if($errors->has('captcha'))
        <div class="col-md-12">
            <p class="text-danger text-left"><strong>{
   {$errors->first('captcha')}}</strong></p>
        </div>
    @endif
</div>

  • 点击图片刷新,如下代码:
    <img src="{
         {captcha_src()}}" style="cursor: pointer" οnclick="this.src='{
         {captcha_src()}}'+Math.random()">

    • 重写AuthController 登录验证方法,并自定义提示信息:

    • 首先要引入如下代码:

      use Illuminate\Http\Request;

    • 重写validateLogin方法:
       protected function validateLogin(Request $request){
              $this->validate($request, [
                  $this->loginUsername() => 'required',
                  'password' => 'required',
                  'captcha' => 'required|captcha',  //注意这里验证码的验证在这里,不用写逻辑
              ],[
                  'captcha.required' => trans('validation.required'),
                  'captcha.captcha' => trans('validation.captcha'),
              ]);
          }

  • 字体库的下载与切换:
    • 首先需要下载字体库
    • 下载完成后,将压缩包中 src/zh-CN 文件夹拷贝到项目目录的 resources/lang 文件夹下。
    • 修改 config->app.php 文件,修改代码如下:
      'locale' => 'zh-CN',

  • 由于captcha在中文包中没有中文解释,所以需要手动添加中文解释,具体操作如下:
    • 打开 resources/zh-CN/validation.php,在总数组中追加如下键值对:
      'captcha'                  => ':attribute 不正确。',

    • 在 attributes 数组中追加如下键值对:
      'captcha'               => '验证码',

      https://laravel-china.org/articles/6736/laravel-code-captcha 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112977.html原文链接:https://javaforall.net

(0)
上一篇 2021年10月26日 下午7:00
下一篇 2021年10月26日 下午8:00


相关推荐

  • 寄存器寻址入门

    寄存器寻址入门寄存器寻址指令的地址码部分给出某一个通用寄存器的编号 Ri 这个指定的寄存器中存放着操作数 其寻址过程如图 5 3 所示 图中的 IR 表示指令寄存器 它的内容是从主存中取出的指令 操作数 S 与寄存器 Ri 的关系为 这种寻址方式具有两个明显的优点 1 从寄存器中存取数据比从主存中存取快得多 2 由于寄存器的数量较少 其地址码字段比主存单元地址字段短得多 这种方式可以缩短指令长度 提高指令的执行速度 几乎所有的计算机都使用了寄存器寻址方式 总结寄存器寻址快

    2026年3月19日
    2
  • 3阶有向完全图的所有非同构的子图(不同钩子图个数)

    子图同构问题本质上就是一种匹配,VF2算法加了很多feasibilityrules,保证了算法的高效性。这里只是实现最基本的判断子图同构的算法:参考文献有(其实google一把就能出来这些):http://stackoverflow.com/questions/8176298/vf2-algorithm-steps-with-examplehttp://www.zhihu

    2022年4月10日
    439
  • pycharm2018 3激活成功教程key is invalid解决方法

    pycharm2018 3激活成功教程key is invalid解决方法一 简介前段时间电脑更新固态删除了之前安装的 pycharm 现在重新安装遇到了一些问题 之前安装激活成功教程十分简单 就是 1 下载激活成功教程补丁到 pycharm 的 bin 目录下 2 修改 bin 目录下的配置文件 3 打开 pycharm 输入激活码 结果现在到了输入激活码这一步总是产生 keyisinvalid 的问题 最后找到了问题所在二 解决方法出问题的原因是我下载的是 pycharm20183 3

    2026年3月27日
    2
  • 「VUE架构」Vue2.0插件之三:使用vue-axios插件

    「VUE架构」Vue2.0插件之三:使用vue-axios插件本文只要介绍 vue axios 基本用法与常见的问题一 vue axios 插件的安装使用 npm cnpminstalla 二 vue axios 插件的引用出于页面的优雅考虑 使用 vue2 0vue cli 脚手架的代码风格去实现 1 创建引用文件 用 ide 打开项目文件 在 src 目录下创建文件夹 axios 后在文件夹内创建 index js

    2026年3月18日
    2
  • VPP性能测试

    VPP性能测试环境 处理器安装 VPPVPP 版本 VPP 线程网卡 Intel82599 UIO 驱动启动参数配置 需要配置到 grub 中 重启生效 结果 RFC2544 测试 64 字节报文 双向大约能达到线速的 75 开始 VPP 没有加载上 X710 网卡 将 UIO 驱动替换为 igb uio 安装 igb uio 内核驱动模块 如下安装位置 将 X710 网卡 Firmware 更新 测试结果 RFC2544 测试 64 字节报文 双向大约能达到线速的 65

    2026年3月18日
    2
  • CIDR详解

    CIDR详解CIDR 的介绍 CIDR ClasslessInt DomainRoutin 无类域间路由选择 它消除了传统的 A 类 B 类和 C 类地址以及划分子网的概念 因而可以更加有效地分配 IPv4 的地址空间 它可以将好几个 IP 网络结合在一起 使用一种无类别的域际路由选择算法 使它们合并成一条路由从而较少路由表中的路由条目减轻 Internet 路由器的负担 CIDR 还使用 斜线记法 它又

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号