Laravel8.5添加验证码 mews/captcha

1、通过composer安装验证码包

在Composer里执行以下命令

composer require mews/captcha

2、配置

在 config/app.php 中 找到 aliases数组加入以下代码

'Captcha' => Mews\Captcha\CaptchaServiceProvider::class,

3、生成配置文件

在Composer里执行以下命令生成配置文件,配置文件在config里,修改里面的default的length数字,控制验证码的长度;

 php artisan vendor:publish --tag="config"

4、控制器生成验证码

public function codes()
{
  return response()->json([
    'code' => \captcha_src() //返回前端图像验证码
  ]);
}

5、使用验证码

直接在需要的地方加入,我使用的是Vue.js,通过路由方式获取,

<img src="{{captcha_src()}}">

如果是用的vue.js。通过路由获取验证码;

/*html部分*/
<img class="codeImg" :src="urlCode" style="cursor: pointer" @click="getCode">

/*js部分*/
<script>
new Vue({
    el: '.main',
    data: {
        urlCode:"",
    },
    created(){
        this.getCode();
    },
    methods: {
        getCode(){
            let domain = document.domain;
            $.get('http://'+domain+'/getCode',(res)=>{
                this.urlCode =res.code;
            })
        },
        goLogin(){
            document.onkeyup = (event) => {
                let e = event || window.event;
                if(e && e.keyCode==13){
                    //执行登录
                }
            };
        },
    }
})
</script>

6、验证码验证

if(!captcha_check($params['code'])){
   return Response()->json(['code' => 201, 'msg' => '验证码有误']);
  }
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

需要注意的是mews/captcha依赖intervention/image

如果设置intervention/image使用imagick驱动。验证码显示会有问题。

参考:问答:mews/captcha如何调整验证码显示位置

2年前 评论
farmer-code (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!