laravel5.5+使用mews/captcha扩展包实现验证码功能流程步骤

2023-06-01 00:00:00 扩展 步骤 验证码

mews/captcha验证码扩展作为一个laravel框架中的常用扩展,非常方便的在你的网站上加上验证码功能。

git:

https://github.com/mewebstudio/captcha

git镜像:

https://gitcode.net/mirrors/mewebstudio/captcha


进入步骤:

1、通过 composer 安装验证码包

composer require mews/captcha


2、配置

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

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


3、生成配置文件

在 Composer 里执行以下命令,如果弹出选项,选择到 config,

我的 config 的 tag 是 11,输入 11 后回车,然后就会在 config 文件夹里生成配置文件;

配置文件里的 length 是生成验证码多少位。

 php artisan vendor:publish


4、控制器生成验证码

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


5、验证码验证

if(!captcha_check($params['code'])){
   return Response()->json(['code' => 201, 'msg' => '验证码有误']);
}


6、前端调用使用验证码

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

ps:

如果是用的 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>


问题:

1.很多情况下验证码只显示了一半,如何调整?

答:自定义配置验证码样式

return app('captcha')->create('zongscan', true)

config/captcha 参数配置:

'zongscan' => [
    'length' => 4,
    'width' => 100,
    'height' => 38,
    'quality' => 90,
    'lines' => 6,
    'bgImage' => false,
    'bgColor' => '#ecf2f4',
    'fontColors' => ['#2c3e50', '#c0392b', '#16a085', '#c0392b', '#8e44ad', '#303f9f', '#f57c00', '#795548'],
    'contrast' => -5,
]

相关文章