关于算法:开课吧AI算法落地与工程部署实战

5次阅读

共计 2985 个字符,预计需要花费 8 分钟才能阅读完成。

开课吧 -AI 算法落地与工程部署实战

如果你是​​Maven 开发者,使用起来非常便利,我的项目的保护人员已经将依赖推送至地方仓库。只需要引入依赖就实现了 90% 的工作量。接下来只需要在登录接口中进行二次考据就可能了。​​

我的项目集成了包含​​html​​、​​vue​​、​​flutter​​、​​uni-app​​、​​Android Kotlin​​、​​IOS​​、​​php​​等多种前端语言,可能轻松将​​AJ_Captcha​​集成到我的项目中。

接下来咱们以​​Spring Boot​​+​​html​​为例看看如何疾速集成​​AJ_Captcha​​实现行为考据码的交互流程。

第一步、Spring Boot 中引入 AJ_Captcha 依赖

com.anji-plus
spring-boot-starter-captcha
1.2.9

复制代码
​​AJ_Captcha​​默认实现了考据码生成和考据接口,考据码生成接口的默认请求地址是​​/captcha/get​​,考据接口的默认请求地址为​​/captcha/check​​。也就是说实现以上步骤,就可能提供应前端获取和考据考据码的接口了。如果你还想让你的考据码生成的共性一点,可能配置以下属性:

滑动考据,底图路径,不配置将使用默认图片

反对全路径

反对我的项目路径, 以 classpath: 结尾, 取 resource 目录下路径, 例:classpath:images/jigsaw

aj.captcha.jigsaw=classpath:images/jigsaw

滑动考据,底图路径,不配置将使用默认图片

反对全路径

反对我的项目路径, 以 classpath: 结尾, 取 resource 目录下路径, 例:classpath:images/pic-click

aj.captcha.pic-click=classpath:images/pic-click

对于分布式部署的利用,咱们倡导利用自己实现 CaptchaCacheService,比如用 Redis 或者 memcache,

参考 CaptchaCacheServiceRedisImpl.java

如果利用是单点的,也没有使用 redis,那默认使用内存。

内存缓存只适合单节点部署的利用,否则考据码生产与考据在节点之间信息不同步,导致失败。

!!!注意啦,如果利用有使用 spring-boot-starter-data-redis,

请打开 CaptchaCacheServiceRedisImpl.java 正文。

redis —–> SPI:在 resources 目录新建 META-INF.services 文件夹(两层),参考以后服务 resources。

缓存 local/redis…

aj.captcha.cache-type=local

local 缓存的阈值, 达到这个值,清除缓存

aj.captcha.cache-number=1000

local 定时清除过期缓存(单位秒), 设置为 0 代表不执行

aj.captcha.timing-clear=180

spring.redis.host=10.108.11.46

spring.redis.port=6379

spring.redis.password=

spring.redis.database=2

spring.redis.timeout=6000

考据码类型 default 两种都实例化。

aj.captcha.type=default

汉字对立使用 Unicode, 保障程序通过 @value 读取到是中文,可通过这个在线转换;yml 格局不需要转换

https://tool.chinaz.com/tools… 中文转 Unicode

右下角水印文字(我的水印)

aj.captcha.water-mark=\u6211\u7684\u6c34\u5370

右下角水印字体(不配置时,默认使用文泉驿正黑)

因为宋体等涉及到版权,咱们 jar 中内置了开源字体【文泉驿正黑】

形式一:间接配置 OS 层的现有的字体名称,比如:宋体

形式二:自定义特定字体,请将字体放到工程 resources 下 fonts 文件夹,反对 ttf\ttc\otf 字体

aj.captcha.water-font=WenQuanZhengHei.ttf

点选文字考据码的文字字体(文泉驿正黑)

aj.captcha.font-type=WenQuanZhengHei.ttf

校验滑动拼图容许误差偏移量(默认 5 像素)

aj.captcha.slip-offset=5

aes 加密坐标开启或者禁用(true|false)

aj.captcha.aes-status=true

滑动烦扰项(0/1/2)

aj.captcha.interference-options=2

aj.captcha.history-data-clear-enable=false

接口请求次数一分钟限度是否开启 true|false

aj.captcha.req-frequency-limit-enable=false

考据失败 5 次,get 接口锁定

aj.captcha.req-get-lock-limit=5

考据失败后,锁定工夫间隔,s

aj.captcha.req-get-lock-seconds=360

get 接口一分钟内请求数限度

aj.captcha.req-get-minute-limit=30

check 接口一分钟内请求数限度

aj.captcha.req-check-minute-limit=60

verify 接口一分钟内请求数限度

aj.captcha.req-verify-minute-limit=60
复制代码
第二步、前端伪代码调用接口

引入考据码的样式以及考据等文件
考据码获取及考据

复制代码
考据码考据胜利之后,会返回一个用于二次考据的串码。

第三步,用户登录,二次考据
客户端登录的时候携带考据胜利后返回的串码,在登录接口中进行二次考据,考据流程完毕。

@Autowired
private CaptchaService captchaService;
/**

  • 页面获取 token
  • 大屏数据校验
  • @param user
  • @return
    */

@PostMapping(“getWebToken”)
public ResultBean getWebToken(@RequestBody LoginUser user,String captchaVerification){

ResultBean resultBean = new ResultBean();
CaptchaVO captchaVO = new CaptchaVO();
captchaVO.setCaptchaVerification(captchaVerification);
ResponseModel responseModel = captchaService.verification(captchaVO);
if(!responseModel.isSuccess()){resultBean.fillCode(0,responseModel.getRepMsg());
    return resultBean;
}
// 考据通过后,持续登录流程

}
复制代码
明天的内容就介绍到这里了,趁这个机会,试着使用这款高颜值的行为考据码来替换我的项目中的图形考据码吧。

download

正文完
 0