前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Laravel – 验证码(captcha)

Laravel – 验证码(captcha)

作者头像
全栈程序员站长
发布2022-07-08 08:28:51
1.6K0
发布2022-07-08 08:28:51
举报
文章被收录于专栏:全栈程序员必看

本人感觉用的比较好的验证码包,拿出来分享一下,傻瓜式教程,

安装步骤:

  • 首先,登录网址packagist.org查找 laravel captcha,找到mews/captcha ,根据packagist上的使用方法一步步来实现验证码的安装。
  • composer安装:
代码语言:javascript
复制
composer require mews/captcha
  • 注册providers (config/app.php),在这个数组中的最后追加如下代码:
代码语言:javascript
复制
Mews\Captcha\CaptchaServiceProvider::class,
  • 注册aliases (config/app.php),在这个数组中的最后追加如下代码:
代码语言:javascript
复制
'Captcha' => Mews\Captcha\Facades\Captcha::class,
  • 生成配置文件,在Composer命令行中输入如下命令:
代码语言:javascript
复制
php artisan vendor:publish
  • 进入config/captcha.php文件,修改default数组 可以对验证码进行样式、数量、大小上的修改。
代码语言:javascript
复制
'default'   => [
'length'    => 5,
'width'     => 100,
'height'    => 34,
'quality'   => 90,
],

页面中使用:

代码语言:javascript
复制
<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>
  • 点击图片刷新,如下代码:
代码语言:javascript
复制
<img src="{
     {captcha_src()}}" style="cursor: pointer" οnclick="this.src='{
     {captcha_src()}}'+Math.random()">
  • 重写AuthController 登录验证方法,并自定义提示信息:
  • 首先要引入如下代码:
代码语言:javascript
复制
use Illuminate\Http\Request;

重写validateLogin方法:

代码语言:javascript
复制
 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 文件,修改代码如下:
代码语言:javascript
复制
'locale' => 'zh-CN',

由于在中文包中没有中文解释,所以需要手动添加中文解释,具体操作如下:

打开resources/zh-CN/validation.php,在总数组中追加如下键值对:

代码语言:javascript
复制
'captcha'                  => ':attribute 不正确。',

在 attributes 数组中追加如下键值对:

代码语言:javascript
复制
'captcha'               => '验证码',
代码语言:javascript
复制
https://laravel-china.org/articles/6736/laravel-code-captcha 

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/112977.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年10月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档