Lumen5.7快速实现Captcha图片验证码功能
2024-08-31 09:46:22
公司发送短信注册的接口需要防刷,需要一个图形验证码,不考虑收费产品。
Lumen5.7+nginx+mysql
使用了这个作者的扩展包,只讲实现。https://github.com/Youngyezi/captcha。
composer require youngyezi/captcha
注册服务 bootstrap\app.php
$app->register(Youngyezi\Captcha\CaptchaServiceProvider::class);
// 添加别名
$app->alias('captcha', 'Youngyezi\Captcha\CaptchaServiceProvider');
复制 vendor\Youngyezi\Captcha\config\captcha.php 文件至 项目 config 文件下
Example:生成验证码
<?php
use Cache;
/**
** @return array
* {"sensitive": false,
"key":"$2y$10$5QrxhlFmuJJgtcA2WpFVSuSTbaf8JVELNSz/cS9oGAS3Skh8cGZf2",
"img": "data:image/png;base64,iVBORw0II="
}
*/
public function captchaInfo()
{
$result = app('captcha')->create();
//这个key可以自定义,我是放到了文件缓存中
$key = sprintf(config('constants.cache.captcha_code'), $result['key']);
Cache::set($key,$result['key'],config('constants.cache.ten'));
//返回值包括一个base_64加密的图片和一个key
return $this->success($result);
}
Example:校验验证码
<?php
/**
*@params key,captcha
*两个参数key 和验证码
*/
public function check(){
$captcha = $request->input('captcha');
$captcha = strtolower($captcha);
$key = Cache::get(sprintf(config('constants.cache.captcha_code'), $request->input('key')));
if(app('captcha')->check($captcha,$key) === false){
return $this->error('验证码错误');
}
}
Finish,Enjoy it.
最新文章
- Unity3D 脚本手册
- Python socket (多线程)
- 150922-写写博客监督下不自觉的自己-PPT,Linux,HTML
- 关于linux发行版i386/i686/x86-64/的区别
- lsof在运维中的应用
- RPI学习--webcam_用fswebcam抓取图片
- 【Android动画】之Tween动画 (渐变、缩放、位移、旋转)
- Children&#39;s Day
- 【开源】前端练手笔记,Chrome扩展应用程序(html+CSS+JS) (1)
- HTTP协议报文格式
- BZOJ 1324: Exca王者之剑
- Treap的读书笔记2
- java+js实现完整的图片展示本地目录demo
- ng组件通讯的几种方式
- Eclipse 基础操作与设置
- GZip使用
- 在源文件(.c)和头文件(.h)中声明和定义的区别——C语言
- DRF序列化
- 关于ASP.NET 中 Global.asax 文件的后台事件处理程序
- 微信移动端(wap)开发调试工具