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


相关推荐

  • matlab循环读取文件「建议收藏」

    matlab循环读取文件「建议收藏」一般情况下,假如我要读取一个名为a.txt的文件,只需要利用下面的语句:a=load(‘a.txt’);现在假如我需要循环读取saif_1.txt,saif_2.txt,,,一直到saif_10.txt,可以利用下面的语句:forN=1:10a=load([‘saif_’,num2str(N),’.txt’]);end其中,[‘a’,‘.txt’]可以实现对于字符串的连接,结果为a.txt,配合for循环和num2str函数,可以轻松地实现循环读取文件。ref:https://blog

    2022年9月28日
  • JDBC连接(Statement和PrepareStatement)「建议收藏」

    JDBC连接(Statement和PrepareStatement)「建议收藏」1.JDBC连接的连接步骤(Statement和PrepareStatement)(1)注册驱动(只做一次)(2)建立连接(Connection) (3)创建执行SQL的语句(Statement)(4)执行语句(5)处理执行结果(ResultSet)(6)释放资源1.1注册驱动(1)Class.forName(“com.mysql.jdbc.Drive

    2022年5月24日
  • 伴随我们长大的经典—写给从80后的一批人[通俗易懂]

    伴随我们长大的经典—写给从80后的一批人[通俗易懂]很难从时间的范围来划分我们这代人具体是指哪一代人,有人说差三岁就是一代人了,我对这句话就有很深的体会,所以如果非要从时间角度来划分的话,我想我们这代人应该是现在正在高等学府就读的那批二十多岁左右的人,他们大致都出生在八二年到八八年这几年间。  写这篇东西的目的是为了纪念伴随我们一起长大的那些经典的东西,正是由于它们的存在,我们的童年时代才不至于那么无聊。  一、游戏类 

    2022年10月21日
  • TVS二极管SM8S36A,花落谁家?

    TVS二极管SM8S36A,花落谁家?汽车的广泛应用,加速了汽车行业高速发展的同时,也促进了汽车电子行业快速发展。在这个注重智能化和用户体验的时代,汽车所面临的电路保护,诸如汽车总线、USB、CAN总线等,其防护等级越来越高,越来越复杂,同时也越来越严格了。对于汽车电子所需要运用的电路保护器件提出了更高的要求,其中使用最广泛的电路保护元器件之一SM8S系列TVS管,就是最有力的证明,汽车专用型电路防护瞬态电压抑制二极管。采购SM8…

    2022年9月23日
  • Oracle中字符串和时间类型的相互转换

    Oracle中字符串和时间类型的相互转换字符串转时间to_date(‘2018-12-05′,’yyyy-mm-ddhh24:mi:ss’)时间转字符串to_char(sysdate,’yyyy-mm-ddhh24:mi:ss’) 

    2022年5月18日
  • python读取txt文本(python读取excel数据)

    #coding:utf8dict_data={}withopen(‘dict_2data.txt’,’r’)asdf:forkvin[d.strip().split(”)fordindf]:printkv[0].decode(‘utf8’)dict_data[kv[0].decode(‘utf8’)]=kv[1]printdict_dataforkin…

    2022年4月11日

发表回复

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

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