diandian / captcha
Lumen 的验证码
v1.0
2022-07-14 11:17 UTC
Requires
- php: >=8.0.1
- ext-gd: *
- illuminate/config: ^v5.0.0
- illuminate/filesystem: ~5.0
- illuminate/hashing: ~5.0
- illuminate/support: ~5.0
- intervention/image: ~2.2
README
基于 Captcha for Laravel 5 修改而来的
一个简单的 Laravel 5 服务提供者,用于包含 Captcha for Laravel 5。
更新
支持了 Lumen 6x
来源
Captcha for Laravel 5 作者很久没有更新了,同时 Captcha 在 Lumen 中存在很多错误
因此我基于原 Captcha 包进行了一些错误修复以集成 Lumen。同时删除了一些个人认为过于冗余的东西,使使用更加方便和自由
安装
composer require youngyezi/captcha
使用
新版的包已经删除了 session 支持,完全交给业务自由选择存储方式
个人认为这样更方便来解耦业务,尤其是 Lumen 大多时候用来做 Api 开发,并不需要开启 Session 服务
在 bootstrap/app.php
中注册服务
$app->register(Youngyezi\Captcha\CaptchaServiceProvider::class);
// 添加别名
$app->alias('captcha', 'Youngyezi\Captcha\CaptchaServiceProvider');
配置文件
将 config/captcha.php
复制至项目的 config
文件夹下
例如
验证码生成
// 创建验证码
// 配置文件 key($config)
// 返回 验证码 captcha 和相关 key
$data = app('captcha')->create();
// 自定义储存 key (如 redis ,session 等)
....
// 返回验证码图片 img
验证码校验
// 通过 code 和 key 来校验
$captcha = $request->input('captcha');
// 获取自定义存储的 key 值
$key = { ... };
if(app('captcha')->check($captcha, $key) === false) {
//校验失败
}