@Api(tags = "验证码")
@RestController
@RequestMapping("/validateCode")
public class ValidateCodeController {
@Autowired
private RedisTemplate<String, String> redisTemplate;
@ApiOperation("生成验证码")
@PostMapping("/sendValidateCode")
public Object sendValidateCode(String telephone) {
Random random = new SecureRandom();
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < 10; i++) {
int num = random.nextInt(9);
if (num%2==0) {
stringBuilder.append(num);
} else {
stringBuilder.append((char) (65 + random.nextInt(26)));
}
}
String validateCode = stringBuilder.toString();
ValueOperations forValue = redisTemplate.opsForValue();
forValue.set(telephone, validateCode);
redisTemplate.expire(telephone,24*60*60,TimeUnit.SECONDS);
return ResultJson.ok(validateCode);
}
@ApiOperation("验证验证码")
@PostMapping("/checkValidateCode")
public Object checkValidateCode(String telephone, String validateCode) {
if (telephone==null || validateCode==null) {
return ResultJson.failure(ResultCode.BAD_REQUEST);
}
//redis中的验证码
ValueOperations<String, String> forValue = redisTemplate.opsForValue();
String validateCodeInRedis = forValue.get(telephone);
//校验
if (validateCode!=null && validateCodeInRedis!=null && validateCode.equals(validateCodeInRedis)) {
return ResultJson.ok("验证成功");
}
return ResultJson.failure(ResultCode.UNAUTHORIZED);
}
}
springboot生成验证码,将验证码存入redis,验证验证码
猜你喜欢
转载自blog.csdn.net/weixin_45121502/article/details/105812519
今日推荐
周排行