当前位置: 首页 > news >正文

国内免费素材网站做网站的开源代码

国内免费素材网站,做网站的开源代码,如何做试玩类网站,软件定制需要多少钱短信验证码 接口防刷强检验以及缓存验证码阿里云短信服务操作步骤验证码发送实现 好久没发文啦#xff01;最近也是在工作中遇到我自认为需要记录笔记的需求#xff0c;本人只求日后回顾有迹可寻#xff0c;不喜勿喷#xff01; 废话不多说#xff0c;直接上代码#xff… 短信验证码 接口防刷强检验以及缓存验证码阿里云短信服务操作步骤验证码发送实现 好久没发文啦最近也是在工作中遇到我自认为需要记录笔记的需求本人只求日后回顾有迹可寻不喜勿喷 废话不多说直接上代码 ResponseBodyGetMapping(/sms/sendcode)public R sendCode(RequestParam(phone) String phone) {//从Redis中获取要发送验证码的手机号对应的valueString redisCode redisTemplate.opsForValue().get(AuthConstants.SMS_CODE_CACHE_PREFIX phone);if (!StringUtils.isEmpty(redisCode)) {//redisCode不为空说明redis中是有该手机号的code缓存的//这个分隔是保存code码的格式保存格式在下面的代码片段long l Long.parseLong(redisCode.split(_)[1]);if (System.currentTimeMillis() - l 60000) {//如果当前时间与code缓存的时间差小于1分钟的话是不允许再次发送验证码的return R.error(BizCode.SMS_CODE_EXCRPTION.getCode(), BizCode.SMS_CODE_EXCRPTION.getMsg());}}//redisCode不为空该手机号是第一次调验证码发送接口//强检验验证码String code UUID.randomUUID().toString().substring(0, 5);String s code _ System.currentTimeMillis();//缓存验证码redisTemplate.opsForValue().set(AuthConstants.SMS_CODE_CACHE_PREFIX phone, s, 5, TimeUnit.MINUTES);//远程调用发送验证码服务log.info(------开始发送验证码------);R r thirdPartyFeignService.sendCode(phone, code);if (r.getCode() 200) {log.info(-----发送验证码成功------);}return R.ok();}接口防刷 短信验证码一般做出来就是要加入防刷逻辑的防止有些不怀好意的人对接口进行恶意调用导致系统崩溃对系统的性能和CPU负载都会有一定影响的可能会导致之后页面请求后端数据时卡顿或者相应速度会很慢影响用户的体验感。那接口防刷怎么做呢我刚接触的时候觉得很复杂熟悉之后发现逻辑上还是很简单的校验位需要多种方式结合用Redis存储。 看出来了吧实际上就是加了个时间的校验这也是最简单的一种防刷方案。 强检验以及缓存验证码 利用UUID的随机性再截取其中几位通过“_”和系统时间进行拼接成redis中的value缓存时间为5分钟也就是该验证码5分钟内有效。 阿里云短信服务操作步骤 //TODO 日后有空更新抱拳啦 验证码发送实现 集成阿里云的短信验证码发送API模板可以去阿里云官网的短信服务文档看看还是很好理解的。 ConfigurationProperties(prefix spring.cloud.alicloud.sms) Data Component public class SmsComponent {private String host;private String path;private String mobile;private String appcode;public void sendCode(String phone,String code) {String method GET;MapString, String headers new HashMapString, String();//最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105headers.put(Authorization, APPCODE appcode);MapString, String querys new HashMapString, String();querys.put(mobile, phone);querys.put(content, 【智能云】您的验证码是code。如非本人操作请忽略本短信);//JDK 1.8示例代码请在这里下载 http://code.fegine.com/Tools.ziptry {HttpResponse response HttpUtils.doGet(host, path, method, headers, querys);//System.out.println(response.toString());如不输出json, 请打开这行代码打印调试头部状态码。//状态码: 200 正常400 URL无效401 appCode错误 403 次数用完 500 API网管错误//获取response的bodySystem.out.println(EntityUtils.toString(response.getEntity()));} catch (Exception e) {e.printStackTrace();}}}ConfigurationProperties(prefix “spring.cloud.alicloud.sms”) ConfigurationProperties是Spring Boot提供的一个注解用于将外部配置属性绑定到Java对象上。通过使用这个注解开发者可以将配置文件如application.properties或application.yml中的属性值自动映射到Java类的字段上从而实现配置的集中管理和类型安全。 spring:cloud:alicloud:sms:host: 申请的短信host地址path: 短信验证码的接口路径发送验证码接口所在的controller请求路径appcode: 申请的APPCODE以上配置对应的就是那几个变量值。 ConfigurationProperties的作用 配置绑定将配置文件中的属性值绑定到Java类的字段上实现配置的自动映射。类型安全提供类型安全的配置绑定避免类型转换错误。复杂配置支持复杂配置结构的绑定如嵌套对象、集合、Map等。配置校验结合Valid注解实现配置属性的校验。 然后Postman完成自测你会发现短信验证码的功能就实现啦阿里云短信服务可能需要付一点点的费用哦
http://www.dnsts.com.cn/news/99687.html

相关文章:

  • 江苏越润建设有限公司网站免费学课程的软件
  • 设计风格好看的网站做网站制作的摘要
  • 网站后台信息发布这样做朝阳免费网站制作
  • 软件 网站模板公众平台号
  • 网站开发外包维护合同范本wordpress 3.7.zip
  • 网站开发合同审核要点优设网app官方下载
  • 无锡网站开发定制开发宁河做网站公司
  • 外贸做哪个网站好vs2008做网站
  • 网站登录按钮点击没反应什么原因北京建筑设计院待遇好吗
  • 闽侯福州网站建设营销型网站设计建设
  • 手机端网站尺寸网站加上视频对seo影响
  • 有哪些可以做外链的网站wordpress+手机站目录
  • 北京服饰网站建设营销网站建设多少钱
  • 与别人相比自己网站建设优势做网站中山
  • html商业网站模板apache wordpress
  • 信息公开 强化网站建设单位邮箱怎么申请
  • 如何攻击织梦做的网站方法箱包 东莞网站建设
  • 自己做挖矿网站wordpress gif
  • 外贸展示型网站建设公司云平台开发网站
  • 购物网站开发教程做网站的公司一年能赚多少钱
  • 哪些网站做舆情分析网站源码下载平台
  • 静态网站开发实验报告十大网站建立公司
  • 网站在线演示类似于wordpress
  • 华为建站jsp网站服务建设是什么
  • 北控水务建设发展有限公司网站wordpress 心情评论
  • 投资公司网站建设网站开发的岗位
  • 网站登录人数实时更新如何做嘉兴优化网站费用
  • 外贸汽车网站西宁做网站建设公司
  • 网络设计网站多少钱潍坊公司注册网站
  • 有域名了网站怎么做美发培训职业学校