# 短信验证码

# 1.概述

短信验证码用于发送验证码校验验证码有效性。其中发送短信验证码依赖于短信功能

# 2.配置

# 2.1 yml配置

使用短信验证码功能时,需要到application-xx.yml加入以下配置

smscaptcha:
  templateId: 1 
  smsSp: rly 
  validField: 1 
  timeField: 2 
  • yml配置参数信息说明
属性名        属性说明
templateId 发送验证码时所使用的模板id
smsSp 短信服务商
validField 验证码后所需要替换的参数
timeField 有效时长

# 2.2 验证码生成配置

使用验证码功能,需要对验证码的生成规则,有效时间,长度进行维护;详情参见验证验证码

# 3.发送短信验证码

yml文件中维护完验证码必要参数以后,通过调用CaptchaUtil.sendCaptcha()方法来发送验证码;部分代码如下


   /**
    *@Description: 通过手机号发送验证码
    * @param phone:
    * @return: java.lang.String
    *@auth:whh
    *@date 2022/12/24
    **/
   public static CaptchaSendVO sendCaptcha(String phone){
       CaptchaSendVO captchaSendVO=new CaptchaSendVO();
       CaptchaVO captchaVO = smsCaptchaService.generateCaptcha();//获取到配置的有效时长,以及生成的验证码
       LinkedHashMap<String,String> params=new LinkedHashMap<>(2);
       ...
   }

短信验证码发送成功以后,会生成一个唯一标识码封装到CaptchaSendVO返回。

# CaptchaSendVO对象说明

/**
* @Description: TODO
* @author: whh
* @Date: 2022-12-24 11:11
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CaptchaSendVO {
   /**
   *@Description:本次的标志
   * @param null:
   * @return: null
   *@auth:whh
   *@date 2022/12/24
    **/
   private  String denote;

   /**
    *@Description:手机号
    * @param null:
    * @return: null
    *@auth:whh
    *@date 2022/12/24
    **/
   private  String phone;

   /**
    *@Description:验证码值
    * @param null:
    * @return: null
    *@auth:whh
    *@date 2022/12/24
    **/
   private  String captcha;

# 4.验证验证码

调用CaptchaUtil.checkCaptcha()方法来校验验证码;代码如下

 /**
     *@Description:校验验证码

     * @return: boolean
     *@auth:whh
     *@date 2022/12/24
     **/
    public  static  boolean  checkCaptcha(CaptchaSendVO vo){
        return  Optional.ofNullable(CacheTenantUtil.get(SmsCaptchaConstant.CAPTCHA_CACHE,vo.getPhone()+ StringPool.COLON+vo.getDenote()))
                .map(capt->CommonUtils.equals(capt,vo.getCaptcha())).orElse(false);
    }

将发送验证码返回的CaptchaSendVO对象,作为入参传入验证验证码。

# 5.短信验证码配置

# 1.概述

短信验证码配置主要是为验证码的有效时间以及生成规则;主要功能包含:查询验证码维护验证码

# 2.查询验证码

【菜单路径】:系统管理—->短信验证码配置

短信验证码配置

# 3.维护验证码

点击进入验证码页签加载验证码以后,即可对短信验证码的数据进行操作,如下图所示:

验证码

  • 短信验证码参数信息说明
属性名        属性说明
组合 生成短信验证码时字符串集合包含哪些
长度 生成验证码的长度
有效时间 验证码生效的最长时间