使用Javaredis实现发送手机验证码功能的方法-创新互联
这篇文章主要讲解了使用Java redis实现发送手机验证码功能的方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

要求:
1、输入手机号,点击发送后随机生成6位数字码,2分钟有效
2、输入验证码,点击验证,返回成功或失败
3、每个手机号每天只能输入3次
代码如下
import redis.clients.jedis.Jedis;
import java.util.Random;
public class ValidationTest {
public static void main(String[] args) {
//getValidation("15005076571");
//checkValidation("769897","15005076571");
}
static void getValidation(String tel) {
//主机、端口
Jedis jedis = new Jedis("myhost", 6379);
//密码
jedis.auth("mypassword");
try {
//获取电话号码
String phoneNo = tel;
//本人用1库进行测试
jedis.select(1);
String countKey = phoneNo + ":count";
String codeKey = phoneNo + ":code";
//获取指定的电话号码发送的验证码次数
String cnt = jedis.get(countKey);
//对次数进行判断
if (cnt == null) {
//没有发送过验证码
jedis.setex(countKey, 60 * 60 * 24, "1");
//发送验证码,假设生成的验证码
StringBuffer code = new StringBuffer();
for (int i = 0; i < 6; i++) {
code.append(new Random().nextInt(10));
}
System.out.println("code:" + code);
//缓存中添加验证码
jedis.setex(codeKey, 60 * 2, code.toString());
} else {
if (Integer.parseInt(cnt) < 3) {
//发送验证码,假设生成的验证码
StringBuffer code = new StringBuffer();
for (int i = 0; i < 6; i++) {
code.append(new Random().nextInt(10));
}
System.out.println("code:" + code);
//缓存中添加验证码
jedis.setex(codeKey, 60 * 2, code.toString());
//递增手机发送数量
jedis.incr(countKey);
} else {
//返回超出3次,禁止发送
System.out.println("超出3次,禁止发送");
}
}
} catch (Exception e) {
//这边其实是需要回滚下redis
e.printStackTrace();
} finally {
//关闭redis
if (jedis != null) {
jedis.close();
}
}
}
static void checkValidation(String code, String tel) {
Jedis jedis = null;
try {
jedis = new Jedis("myhost", 6379);
//密码
jedis.auth("mypassword");
jedis.select(1);
String codeKey = tel + ":code";
String validation = jedis.get(codeKey);
if (validation == null) {
System.out.println("验证码未发送或者失效");
} else {
if (validation.equals(code)) {
System.out.println("验证成功");
} else {
System.out.println("验证失败");
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (jedis != null) {
jedis.close();
}
}
}
}另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前文章:使用Javaredis实现发送手机验证码功能的方法-创新互联
转载来源:http://jxjierui.cn/article/ddcsjd.html


咨询
建站咨询
