Laravel8.5添加验证码 mews/captcha

Laravel框架
562
0
0
2022-08-12

github地址:https://github.com/mewebstudio/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"

config/captcha.php

return [
'default' => [
'length' => 5,
'width' => 120,
'height' => 36,
'quality' => 90,
'math' => true, //Enable Math Captcha
'expire' => 60, //Captcha expiration
],
// ...
];

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' => '验证码有误']);
}