基于YMP框架实现的验证码模块,支持图片、邮件和短信三种验证类型,采用@VCaptcha注解方式进行验证,配置简单、灵活,可自定义扩展;
Maven包依赖net.ymate.moduleymate-module-captcha1.0-SNAPSHOT搭建模块工程首先,你需要创建一个基于YMPv2框架的JavaWeb工程项目;(如何快速搭建工程?)
YMP框架扫描包路径要包含net.ymate.module.captcha,调整配置如下:
#框架自动扫描的包路径集合,多个包名之间用'|'分隔,默认已包含net.ymate.platform包,其子包也将被扫描ymp.autoscan_packages=net.ymate注:推荐将YMP框架更新至最新(Maven中央库发布的版本较缓), 请前往下载最新代码
使用方法说明获取验证码图片
https:///captcha?tokenId=&type=tokenId:令牌标识ID,用于区分不同客户端及数据存储范围,相同令牌ID间仅存在唯一验证码,可选参数;
type:仅当type=1时采用Base64编码输出图片,可选参数;
发送短信验证码
https:///captcha/sms_code?tokenId=&mobile=tokenId:令牌标识ID,采用sms作为前缀,区别于图片验证码,可选参数;
mobile:手机号码,必选参数;
返回值说明:
{ret:0,msg:"..."}ret=0 表示发送成功ret=-1 表示参数验证错误ret=-6 表示发送频率过快或其它消息ret=-50 表示发送异常发送邮件验证码
https:///captcha/mail_code?tokenId=&email=tokenId:令牌标识ID,采用mail作为前缀,区别于图片验证码,可选参数;
email:邮件地址,必选参数;
返回值说明:
{ret:0,msg:"..."}ret=0 表示发送成功ret=-1 表示参数验证错误ret=-6 表示发送频率过快或其它消息ret=-50 表示发送异常检查验证码是否合法
https:///captcha/match?tokenId=&token=tokenId:令牌标识ID,可选参数;
token:预验证的令牌值,必选参数;
返回值:
{ret:0,matched:true|false}模块配置参数说明#-------------------------------------#module.captcha模块初始化参数#-------------------------------------#是否开启调试模式(调试模式下控制台将输出生成的验证码,同时短信验证码也不会被真正发送),默认值:falseymp.configs.module.captcha.dev_mode=#验证码服务提供者类,默认值:net.ymate.module.captcha.impl.DefaultCaptchaProviderymp.configs.module.captcha.provider_class=#验证码存储适配器类,默认值:net.ymate.module.captcha.impl.DefaultCaptchaStorageAdapterymp.configs.module.captcha.storage_adapter_class=#身份令牌标识扩展处理器,默认值:空ymp.configs.module.captcha.token_processor_class=#邮件验证码发送服务提供者类,默认值:空ymp.configs.module.captcha.mail_send_provider_class=#相同令牌标识范围的邮件验证码重复发送的是时间间隔(秒),默认值:300秒ymp.configs.module.captcha.mail_send_time_interval=#手机短信验证码发送服务提供者类,默认值:空ymp.configs.module.captcha.sms_send_provider_class=#手机短信验证码内容模板,默认值:${captcha}ymp.configs.module.captcha.sms_content_template=#相同令牌标识范围的短信验证码重复发送的是时间间隔(秒),默认值:120秒ymp.configs.module.captcha.sms_send_time_interval=#设置在达到指定错误次数上限后开启验证码,默认值:0,表示不开启错误记数特性ymp.configs.module.captcha.need_captcha_wrong_times=#缓存名称前缀,默认值:""ymp.configs.module.captcha.cache_name_prefix=#验证码最小字符长度,默认值:4ymp.configs.module.captcha.token_length_min=#验证码超时时间,单位:秒,默认:空,空或小于等于0均表示不限制ymp.configs.module.captcha.token_timeout=#高度,默认:70pxymp.configs.module.captcha.height=#宽度,默认:200pxymp.configs.module.captcha.width=#前景色,RGB值,如:0,0,0|1,2,3,多个颜色用'|'分隔,默认:随机ymp.configs.module.captcha.foregrounds=#背景色,RBG值,默认:255,255,255ymp.configs.module.captcha.background=#质量,可选值:min|default|max,默认:maxymp.configs.module.captcha.quality=#压缩比,0-1之间,默认:空ymp.configs.module.captcha.compress_ratio=#图片格式,可选值:png|jpeg,默认:jpegymp.configs.module.captcha.format=#自定义字体,可选参数,如:SansSerif,plain|Serif,bold|Monospaced,plain,多个字体用'|'分隔,默认:随机ymp.configs.module.captcha.fonts=#图片生成效果参数设置:缩放,取值范围:[0-1,0-1],默认:1,1ymp.configs.module.captcha.effect.scale=#图片生成效果参数设置:波浪,默认值:trueymp.configs.module.captcha.effect.ripple=#图片生成效果参数设置:模糊,默认值:trueymp.configs.module.captcha.effect.blur=#图片生成效果参数设置:轮廓,默认值:falseymp.configs.module.captcha.effect.outline=#图片生成效果参数设置:旋转,默认值:trueymp.configs.module.captcha.effect.ratale=OneMoreThingYMP不仅提供便捷的Web及其它Java项目的快速开发体验,也将不断提供更多丰富的项目实践经验。
感兴趣的小伙伴儿们可以加入官方QQ群480374360,一起交流学习,帮助YMP成长!
了解更多有关YMP框架的内容,请访问官网:https://www.ymate.net/
评论