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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • centos7系统更新命令_centos 更新

    centos7系统更新命令_centos 更新1.查看网络IP ifconfig2.下载命令 wget+网址3.安装 yum-y install + 目标4.删除文件 sudo rm 文件所在目录/目标强制删除文件 rm -f删除目录 rm -rf5.复制一个文件到另一个文件夹sudo cp /文件夹/文件 /另一个文件夹6.对一些文件进行读写sudo vim 文件名7….

    2022年8月18日
    66
  • java常量表示_形参可以是常量吗

    java常量表示_形参可以是常量吗万千封印我知道编译器需要在编译时知道表达式才能编译一个开关,但是为什么foo.ba_常数不是呢?虽然从字段初始化后执行的任何代码的角度来看,它们都是常量,但它们不是编译时间常数在JLS所要求的意义上;见§15.28常量表达式的规格常数表达式1..这指的是§4.12.4最后变量它将“常量变量”定义为:我们称一个变量为原始类型或类型字符串,它是最终变量,并使用编译时常量表达式(§15.28)初始化为常…

    2022年9月29日
    0
  • jquery中的$()是什么_js简单特效

    jquery中的$()是什么_js简单特效在设计前端页面时,会用到很多效果,我们可以采用CSS样式或JavaScript来实现,在这里给大家介绍JS动画

    2022年10月16日
    0
  • Mybatis缓存详解[通俗易懂]

    Mybatis缓存详解[通俗易懂]Mybatis缓存所有的查询都要连接数据库连接数据库耗费资源如何能一次查询的结果给他暂存到一个可以直接取到的地方!!–>内存:缓存我们再次查询相同数据的时候直接走缓存就不用走数据库了一、缓存简介什么是缓存[Cache]?存在内存中的临时数据。将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。为什么使用缓存?减少和数据库的交互次数,减少系统开销,提高系统效率

    2022年5月21日
    36
  • 应用迁云之镜像迁移-(1)概述

    应用迁云之镜像迁移-(1)概述

    2022年2月23日
    35
  • windows lua_windows创建指定大小的文件

    windows lua_windows创建指定大小的文件首先我在D:\downloadSoftware\lua-5.3.5_Win64_bin目录下创建了一个hello.lua的文件,文件内容如图,是一个简单的lua程序。运行这个文件有两种方式。第一种:进入cmd命令行,然后进入源文件的目录下执行命令luachello.lua(后面的是文件名),可以看到当前目录下生成了一个文件hello.out,这是源文件编译好了,然后执行命令lua…

    2025年5月26日
    0

发表回复

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

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