aishan/lumen-captcha

captcha for lumen

Maintainers

👁 aishan

Package info

github.com/aishan/lumen-captcha

pkg:composer/aishan/lumen-captcha

Statistics

Installs: 8 561

Dependents: 0

Suggesters: 0

Stars: 10

Open Issues: 2

v1.3 2016-11-24 10:36 UTC

Requires (Dev)

None

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 9f9fe62c273f12d7f00de98dde23648194bdd6a6

  • aishan <aishan520315.woop@vip.126.com>

lumen Captchalumen SecurityCaptcha for api

This package is not auto-updated.

Last update: 2026-06-21 05:36:55 UTC


README

本项目修改自 Captcha for Laravel 5.

预览效果图

👁 Preview

安装

  • 项目必须启用缓存才能使用,因为验证码和验证码绑定的uuid都是保存在缓存的。 project's composer.json.
composer require aishan/lumen-captcha

or

{
 "require": {
 "laravel/lumen-framework": "5.3.*",
 "aishan/lumen-captcha": "v1.3"
 },
 "minimum-stability": "dev"
}

使用

bootstrap/app.php中注册Captcha Service Provider:

 //验证码
 $app->register(Aishan\LumenCaptcha\CaptchaServiceProvider::class);
 class_alias('Aishan\LumenCaptcha\Facades\Captcha','Captcha');

配置

bootstrap/app.php中可以配置各种自定义类型的验证码属性: 更多详细配置请查看https://github.com/mewebstudio/captcha

/**
 * captcha配置
 */
config(['captcha'=>
 [
 'useful_time'=>5,//验证码有效时间,单位(分钟)
 'captcha_characters'=>'2346789abcdefghjmnpqrtuxyzABCDEFGHJMNPQRTUXYZ',
 'sensitive' =>false,//验证码大小写是否敏感
 'login' => [//登陆验证码样式
 'length' => 4,//验证码字数
 'width' => 120,//图片宽度
 'height' => 36,//字体大小和图片高度
 'angle' => 10,//验证码中字体倾斜度
 'lines' => 2,//生成横线条数
 'quality' => 90,//品质
 'invert' =>false,//反相
 'bgImage' =>true,//是否有背景图
 'bgColor' =>'#ffffff',
 'blur' =>0,//模糊度
 'sharpen' =>0,//锐化
 'contrast' =>0,//反差
 'fontColors'=>['#339900','#ff3300','#9966ff','#3333ff'],//字体颜色
 ],
 ]
]);

当然,也可以不配置,默认就是default的样式,验证码有效时间5分钟。

使用范例

因为lumen一般写的都是无状态的API,所以此处验证码的图片必须绑定一个uuid,获取图片验证码时,先获取验证码url地址和uuid,然后在验证时,提交验证码和uuid一并验证码。

生成验证码

获取验证码信息:

{站点域名}/captchaInfo/{type?}

其中type就是在配置文件中定义的验证码类型(如果你定义了的话),当然也可以不指定type,则默认为default,返回信息:

{
 "code": "10000",
 "msg": "success",
 "sub_code": "",
 "sub_msg": "",
 "result": {
 "captchaUrl": "{站点域名}/captcha/default/fc1d7d7f-3d8c-652a-5e92-90e9822740ad",
 "captchaUuid": "fc1d7d7f-3d8c-652a-5e92-90e9822740ad"
 }
}

captchaUrl为验证码图片地址,captchaUuid为绑定验证码图片的uuid。

验证验证码

在请求中将验证码的值和uuid随着你的post请求一起发到服务端,在接收参数的地方做验证即可:

public function checkCaptcha(Request $request, $type = 'default',$captchaUuid)
 {
 $this->validate($request,[
 'captcha'=>'required|captcha:'.$captchaUuid
 ]);
 ...
 }

Links