laravel5.5+使用mews/captcha扩展包实现验证码功能流程步骤
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,
]
相关文章