ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

laravel自带的auth使用captcha验证码插件

2021-03-01 21:34:02  阅读:262  来源: 互联网

标签:laravel lang 插件 caouecs required 验证码 auth captcha


laravel自带的auth使用验证码插件

安装captcha

注意:php的fileinfo插件一定要安装,不然会报错

composer 安装

composer require mews/captcha

登录网址 packagist.org 查找 laravel captcha安装

  1. 找到mews/captcha
  2. 根据 packagist 上的使用方法一步步来实现验证码的安装

注册

providers

在config文件夹中找到app.php,在providers数组中追加

Mews\Captcha\CaptchaServiceProvider::class,

aliases

在config文件夹中找到app.php,在aliases数组中追加

‘Captcha’ => Mews\Captcha\Facades\Captcha::class,

生成配置文件

在命令控制台输入以下命令

php artisan vendor:publish

[数字] Tag: config

然后输入有这个内容的数字就可以完成了

修改默认文件

进入config/captcha.php 文件,修改default 数组

'default' => [
        'length' => 4, //验证码数量
        'width' => 120, //验证码图片的宽
        'height' => 36, //验证码图片的高
        'quality' => 90, //验证码的显示质量
        'math' => false,
        'expire' => 60, //到期时间(秒)
        'encrypt' => false, //是否开启加密
    ],

页面修改

<p class="p-input pos">
    <label for="veri-code">输入验证码</label>
    <input type="text" id="veri-code" name="captcha" value="{{ old('captcha') }}">
    <a href="javascript:;" class="send"><img src="{{captcha_src()}}"onclick="this.src='{{captcha_src()}}'+Math.random()" title="点击图片重新获取验证码"></a>
     @if ($errors->has('captcha'))
        <span class="help-block">
            <strong>{{ $errors->first('captcha') }}</strong>
         </span>
     @endif
</p>

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

记得一定要在命名空间下面引入

use Illuminate\Http\Request;

这里是我不想引入zh-CN字体库,所以直接定义了错误文本,如果你想引入字体库,我也在下面写了

/**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }
    protected function validateLogin(Request $request){
        $this->validate($request, [
            $this->username() => 'required',
            'password' => 'required',
            'captcha' => 'required|captcha',
        ],[
            'captcha.required' => '请填写验证码',
            'captcha.captcha' => '验证码错误',
        ]);
    }

到此就可以使用验证码登录验证了!

番外

下载字体库

Laravel 8.x : composer require caouecs/laravel-lang:~7.0
Laravel 7.x : composer require caouecs/laravel-lang:~6.0
Laravel 6.x : composer require caouecs/laravel-lang:~5.0
Laravel 5.8 : composer require caouecs/laravel-lang:~4.0
Laravel 5.1-5.7 : composer require caouecs/laravel-lang:~3.0
Laravel 5 : composer require caouecs/laravel-lang:~2.0

放置语言包

扩展包含大多数语言,语言包位于vendor/caouecs/larvel-lang/src 目录中
根据自己的需要复制语言包到 resources/lang 目录中

修改配置文件

  1. 将 vendor/caouecs/larvel-lang/src/zh-CN 文件夹拷贝到 resources/lang 文件夹下。
  2. 修改 config/app.php 配置文件,将’locale’ => ‘en’修改为’locale’ => ‘zh-CN’

修改语言文件

  1. 由于captcha在中文包中没有中文解释,所以需要手动添加中文解释
  2. 打开 resources/zh-CN/validation.php,在总数组中追加如下键值对
'captcha' => ':attribute 不正确。',
  1. 在 attributes 数组中追加以下键值对
'captcha' => '验证码',
  1. 重写AuthController 登录验证方法,并使用系统自带的提示信息
	protected function validateLogin(Request $request){
        $this->validate($request, [
            $this->username() => 'required',
            'password' => 'required',
            'captcha' => 'required|captcha',
        ],[
            'captcha.required' => trans('validation.required'),
            'captcha.captcha' => trans('validation.captcha'),
        ]);
	}

总结

通过安装captcha插件来实现验证登录的安全性,通过lang语言包设置中文,修改系统提示语言!

标签:laravel,lang,插件,caouecs,required,验证码,auth,captcha
来源: https://blog.csdn.net/lo6064200/article/details/114268883

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有