文章来源:https://www.cnblogs.com/brady-wang/p/12034095.html 侵权联系马上删除
1.安装 youngyezi/captcha 成功的话如图
composer require youngyezi/captcha
- 在bootstrap/app.php中进行注册
// 验证码
$app->register(Youngyezi\Captcha\CaptchaServiceProvider::class);
// 添加别名
$app->alias('captcha', 'Youngyezi\Captcha\CaptchaServiceProvider');
3.复制 vendor\Youngyezi\Captcha\config\captcha.php 文件至 项目 config 文件
4.在控制器中新增一个控制器来生成验证码
public function create(Request $request)
{
$parems = $request->all();
$type = isset($parems['type']) ? $parems['type'] : 'default'; // 这里是让前端可以自由选择不同样式的验证码,样式去vendor\Youngyezi\Captcha\config\captcha.php设置
$data = app('captcha')->create($type, true);
setcookie('captcha', $data['key']);
return response()->json([
'code' => 200,
'msg' => '操作成功',
'data' => $data['img'],
]);
}
5.前端发送请求判断验证码
1. 封装一个办法用来判断验证码
/**
* @params key,captcha
* 两个参数key和验证码
*/
private function captcha_check($key, $captcha)
{
return app('captcha')->check(strtolower($captcha), $key);
}
2.在登录中判断
$captcha = $post_data['captcha'];
$key = $request->cookie('captcha');
if (!$this->captcha_check($key, $captcha)) {
return response()->json(['code' => 500, 'msg' => '验证码错误']);
}