zoukankan      html  css  js  c++  java
  • Laravel5的验证码功能【更新2020.10.10】

    修改添加后端直接验证

    第三方扩展包 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数组里面追加一下代码
     MewsCaptchaCaptchaServiceProvider::class, 

    **aliases **数组里面追加
     'Captcha' => MewsCaptchaFacadesCaptcha::class, 

    在composer命令行下执行
     php artisan vendor:publish 
    生成配置文件captcha.php


    注:在其他地方有见过
    php artisan vendor:publish --provider='MewsCaptchaCaptchaServiceProvider'
    但是测试过没有效果

    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 后端验证

    这里改为可直接验证的或者也可以使用下面的进行全部验证(因为是后台登录,不做注册处理,简单验证)

    使用前先添加,不然直接使用 Validator 会报错

     1 use IlluminateSupportFacadesValidator; 

    然后在需要判断的位置加入

    1         $data = $request->input();
    2         //验证码验证
    3         $rules = ['captcha' => 'required|captcha'];
    4         $validator = Validator::make($data, $rules);
    5         if ($validator->fails())
    6         {
    7             return response()->json(['msg' => '验证码输入有误','code'=>0]);
    8         }    

    这样验证就完成啦


    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

  • 相关阅读:
    Eclipse_debug异常_Source not found
    Mybatis异常_01_Invalid bound statement (not found)
    [转]Eclipse快捷键_01_常用快捷键汇总
    PL/SQL学习笔记_03_存储函数与存储过程
    PL/SQL学习笔记_02_游标
    PL/SQL学习笔记_01_基础:变量、流程控制
    Oracle学习笔记_05_分组函数
    博客园_01_为博客园添加目录的方法总结
    Oracle学习笔记_04_多表查询
    Oracle学习笔记_03_单行函数
  • 原文地址:https://www.cnblogs.com/exo5/p/13602427.html
Copyright © 2011-2022 走看看