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


相关推荐

  • Java中的注解 – @NotNull「建议收藏」

    Java中的注解 – @NotNull「建议收藏」比如说,你写了一个后台系统,接收用户的请求,经过运算后返回结果,很通用的一个实现方案。假定所有的方法都需要校验参数是否为空,不然就可能有NullPointerException,如果系统有N个接口,每个接口参数有M个,你需要写N*M个if判断语句。如if(StringUtils.isBlank(request.getA())){thrownewIllegalArgume…

    2022年5月30日
    37
  • Eclipse 主题,字体 ,字符集 设置

    Eclipse 主题,字体 ,字符集 设置Eclipse 主题,字体 ,字符集 设置

    2022年4月24日
    54
  • 虚拟机连接上网的步骤「建议收藏」

    虚拟机连接上网的步骤「建议收藏」1.首先查看本机的可上网的IP地址:我的本机IP地址是192.168.1.5,由此可以推出我的网关地址就是192.168.1.1这个网关就是可以用来访问的一个地址,一般子网掩码都是255.255.255.02.设置本机的Vmare8的IP为静态IP和并且一定要配到这个192.168.1.1这个网关下右键其属性配成对用的网关地址,一定要在一个网段内下面是虚拟机里面的配置,里面有个虚拟机网络编辑这个是可供虚拟机上网的网段,一定要在这个范围之内这个配置完之后

    2022年5月19日
    71
  • navicat for mysql 15激活码_在线激活2022.01.18

    (navicat for mysql 15激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html0HKLM1UCCY-eyJsaWNlbnNlSW…

    2022年3月31日
    215
  • NFS原理详解_简述NFS服务的工作流程

    NFS原理详解_简述NFS服务的工作流程【mike:前面大概看了看,后面看不懂】source:http://blog.51cto.com/atong/1343950NFS原理详解原创woshiliwentong2013-12-2312:17评论(4)24682人阅读PS:哈哈,这篇的篇幅真的非常的长。要看完真的要有很强的耐心那。我自己写也快写吐了呢。[ATon

    2025年7月17日
    1
  • 解决笛卡尔积

    解决笛卡尔积消除笛卡尔乘积最根本的原因不是在于连接,而是在于唯一ID,就像学号,一个学生就只有一个学号,学号就是这个学生的唯一标识码。左连接只是以左边的表为基准,左边的ID和右边ID都是唯一,就不会产生笛卡尔现象,如果右边有两个ID对应左边一个ID,就算你是左连接,一样会产生1对多的现象…

    2022年7月11日
    24

发表回复

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

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