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