若依集成短信验证码登陆功能思路加源码 RuoYi Redis暂存验证码
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import java.util.concurrent.TimeUnit;
@Component
public class SmsCodeSender {
@Autowired
private StringRedisTemplate stringRedisTemplate;
/**
* 发送短信验证码并保存到Redis中
* @param mobile 手机号
* @param code 验证码
* @param expireMinutes 过期时间(分钟)
*/
public void send(String mobile, String code, int expireMinutes) {
// 实际发送短信的逻辑
// sendSms(mobile, code);
// 保存验证码到Redis,并设置过期时间
stringRedisTemplate.opsForValue().set(mobile, code, expireMinutes, TimeUnit.MINUTES);
}
/**
* 验证短信验证码
* @param mobile 手机号
* @param code 验证码
* @return 是否验证成功
*/
public boolean validate(String mobile, String code) {
String cacheCode = stringRedisTemplate.opsForValue().get(mobile);
return cacheCode != null && cacheCode.equals(code);
}
}
这段代码展示了如何使用Spring Data Redis的StringRedisTemplate来保存和验证短信验证码。发送短信验证码的方法send()会将验证码保存到Redis,并设置过期时间。验证短信验证码的方法validate()会从Redis中获取验证码并与用户输入进行比对,如果匹配则返回true。在实际应用中,需要替换掉sendSms()方法,实现真正的短信发送逻辑。
评论已关闭