You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

86 lines
2.6 KiB

6 years ago
/**
* Copyright (c) 2018 人人开源 All rights reserved.
*
* https://www.renren.io
*
* 版权所有侵权必究
*/
package com.epmet.redis;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils;
5 years ago
import com.epmet.dto.form.LoginByPhoneFormDTO;
5 years ago
import com.epmet.dto.form.SendSmsCodeFormDTO;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
6 years ago
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 验证码Redis
*
* @author Mark sunlightcs@gmail.com
* @since 1.0.0
*/
@Component
public class CaptchaRedis {
private Logger logger = LogManager.getLogger(CaptchaRedis.class);
6 years ago
/**
* 验证码5分钟过期
*/
private final static long EXPIRE = 60 * 5L;
5 years ago
/**
* 过期时长为30分钟单位
*/
private final static long MINUTE_THIRTY_EXPIRE = 60 * 30 * 1L;
6 years ago
@Autowired
private RedisUtils redisUtils;
public void set(String uuid, String captcha){
String key = RedisKeys.getLoginCaptchaKey(uuid);
logger.info("保存验证码key=["+key+"]");
6 years ago
redisUtils.set(key, captcha, EXPIRE);
}
public String get(String uuid){
String key = RedisKeys.getLoginCaptchaKey(uuid);
String captcha = (String)redisUtils.get(key);
//logger.info("获取验证码key=["+key+"]captcha=["+captcha+"]");
6 years ago
//删除验证码
if(captcha != null){
6 years ago
redisUtils.delete(key);
}
6 years ago
return captcha;
}
5 years ago
/**
* @param sendSmsCodeFormDTO appclientphone
* @param smsCode 验证码
* @return void
* @Author yinzuomei
* @Description
* @Date 2020/4/18 13:53
**/
public void saveSmsCode(SendSmsCodeFormDTO sendSmsCodeFormDTO, String smsCode) {
5 years ago
String smsCodeKey = RedisKeys.getLoginSmsCodeKey(sendSmsCodeFormDTO.getApp(), sendSmsCodeFormDTO.getClient(), sendSmsCodeFormDTO.getPhone());
5 years ago
logger.info(String.format("短信验证码key=%s", smsCodeKey));
redisUtils.set(smsCodeKey, smsCode, MINUTE_THIRTY_EXPIRE);
}
5 years ago
/**
* @param formDTO
* @return java.lang.String
* @Author yinzuomei
* @Description 获取登录时发送的验证码
* @Date 2020/4/18 21:33
**/
public String getSmsCode(LoginByPhoneFormDTO formDTO) {
String smsCodeKey = RedisKeys.getLoginSmsCodeKey(formDTO.getApp(), formDTO.getClient(), formDTO.getPhone());
String smsCode = (String) redisUtils.get(smsCodeKey);
return smsCode;
}
6 years ago
}