sunmking / think-captcha
captcha package for thinkphp
dev-main
2023-08-23 02:09 UTC
Requires
- ramsey/uuid: ^4.7
- topthink/framework: ^6.0|^8.0
This package is auto-updated.
Last update: 2024-12-23 04:58:37 UTC
README
thinkphp6 验证码类库
基于官方修改 支持 redis、file、memcached、memcache、wincache 需要在 config/cache.php 里添加相应的配置
安装
composer require sunmking/think-captcha
使用
在控制器中输出验证码
在控制器的操作方法中使用
public function captcha($id = '')
{
return captcha($id);
}
然后注册对应的路由来输出验证码
模板里输出验证码
无需在路由文件里注册路由规则,安装完成后会自动注册 2 个验证码路由规则。
\think\facade\Route::get('captcha/apis/[:config]', "\\Sunmking\\Captcha\\CaptchaController@index");
\think\facade\Route::get('captcha/[:config]', "\\Sunmking\\Captcha\\CaptchaController@index");
可以执行以下命令查看
php think route:list
然后就可以在模板文件中使用
<div>{:captcha_img()}</div>
或者
<div><img src="{:captcha_src()}" alt="captcha" /></div>
上面两种的最终效果是一样的
控制器里验证
使用TP的内置验证功能即可
$this->validate($data,[
'captcha|验证码'=>'require|captcha'
]);
或者手动验证
if(!captcha_check($captcha)){
//验证失败
};
前后端分离使用
配置
1、需要在 config/cache.php 里添加相应的配置 2、需要在 config/captcha.php 里添加相应的驱动
// session 默认
//redis、file、memcached、memcache、wincache
'driver' => 'session'
获取
请求以下接口获取 base64 图片和 uuid
\think\facade\Route::get('captcha/apis/[:config]', "\\Sunmking\\Captcha\\CaptchaController@index");
验证
if(!captcha_check($captcha,$uuid)){ //验证失败 };
如果驱动为 session uuid也可以不传