JAVA短信验证登录
短信验证登陆
1、点击触发,以电话号码为参数调用发送验证登录短信方法
2、默认模板为验证模板
生成6位验证码
3、将生成的验证码和手机号码放入缓存,(已经设置好缓存存放时间)
4、调用发送模板短信方法发送短信(设置好短信中验证码有效的时间)
5、点击触发登陆,调用对应验证登录函数 ,以电话号码和验证码为参数
6、校验缓存中对应保留的信息
如果一致,登陆成功;
登陆不成功是返回原因(1、超时 2、验证码输入错误)
代码实现:
/**
*发送验证码短信
*参数:手机号码
*/
public void sendVerifyLoginSMS(String to) {
Jedis cache = sendSMSCache.getResource();
//生成六位验证码
String charValue = "";
for (int i = 0; i < 6; i++) {
char c = (char) (randomInt(0, 9) + '0');
charValue += String.valueOf(c);
}
//将生成的六位验证码和传进来的手机号码存入缓存,时间90S
try{
Pipeline pipeline = cache.pipelined();
pipeline.set("CACHE" + to, charValue);
pipeline.expire("CACHE", 90);
pipeline.sync();
}
finally
{
if (cache != null)
{
cache.close();
}
}
//验证码和显示时间
String[] datas = {charValue,"1.5"};
//短信模板
String templateId = "1";
sMSClientBiz.sendSMS(to, templateId, datas);
}
/**
* 生成随机数
*
* */
public int randomInt(int from, int to) {
Random r = new Random();
return from + r.nextInt(to - from);
}
/**
* 验证短信验证码登陆
*
* */
public boolean verifySMS(String to, String verifyCode) {
Jedis cache = sendSMSCache.getResource();
// 缓存中验证码
String cacheVerifyCode;
try{
cacheVerifyCode = cache.get("CACHE" + to);
}
finally
{
if (cache != null)
{
cache.close();
}
}
//如果赎金来的验证码和缓存中的验证码一致,则验证成功
if(verifyCode ==cacheVerifyCode ){
return true;
}else
return false;
}
JAVA短信验证登录的更多相关文章
- java短信验证和注册
最近公司需要用到短信验证注册,所以申请了阿里云的短信服务.我的项目是分布式的spring boot 原理: 利用第三方发送短信 获取回执消息,然后存入缓存里面 将用户填写的验证码与缓存里面的验证码对比 ...
- 使用java短信验证
package cn.geekss.util; import java.io.BufferedReader;import java.io.InputStreamReader;import java.i ...
- 注册登录页面修订-Python使用redis-手机验证接口-发送短信验证
登录页面修订 views.Login.vue <template> <div class="login box"> <img src="@/ ...
- 阿里云短信验证~JAVA后台
maven :中的 pom.xml添加 <dependency> <groupId>com.aliyun</groupId> <artifactId>a ...
- django-实现登录短信验证
功能演示 核心任务 前端功能: 点击按钮Ajax调用发送验证码功能 输完验证码后Ajax调用验证功能 后端功能: 功能1:发送验证码功能 功能2:验证码检查 后台核心逻辑(不需要手写) 功能3:发短信 ...
- springboot +spring security4 自定义手机号码+短信验证码登录
spring security 默认登录方式都是用户名+密码登录,项目中使用手机+ 短信验证码登录, 没办法,只能实现修改: 需要修改的地方: 1 .自定义 AuthenticationProvide ...
- SpringBoot + Spring Security 学习笔记(五)实现短信验证码+登录功能
在 Spring Security 中基于表单的认证模式,默认就是密码帐号登录认证,那么对于短信验证码+登录的方式,Spring Security 没有现成的接口可以使用,所以需要自己的封装一个类似的 ...
- Spring Security构建Rest服务-1203-Spring Security OAuth开发APP认证框架之短信验证码登录
浏览器模式下验证码存储策略 浏览器模式下,生成的短信验证码或者图形验证码是存在session里的,用户接收到验证码后携带过来做校验. APP模式下验证码存储策略 在app场景下里是没有cookie信息 ...
- Springboot下实现阿里云短信验证功能(含代码)
Springboot下实现阿里云短信验证功能 一 开通阿里云短信服务 阿里云官网注册登录 找到短信服务并开通 打开短信服务的管理台 在国内消息那栏中添加签名管理和模板管理(按照格式要求去写) 在右上角 ...
随机推荐
- AJAX开发技术--AJAX简介
Asynchronous JavaScript and XML,异步JavaScript和XML 主要目的用于页面的局部刷新.不用全部刷新,提高性能. 在AJAX中主要是通过XMLHttpReque ...
- Css span div
SPAN元素和DIV元素有什么区别 解决思路: 最明显的区别是:DIV是块元素,SPAN是内嵌元素.块元素相当于内嵌元素在前后各加一个<br>换行.其实,块元素和行内元素也不是一成不变的, ...
- RadioGroup+TabHost
=.= //MainActivity public class MainActivity extends TabActivity implements OnCheckedChangeListener ...
- Attrib命令,可以让文件夹彻底的隐藏起来
Attrib命令,可以让文件夹彻底的隐藏起来,就算是在文件夹选项中设置了显示隐藏文件夹,也无法显示出来的.只能通过路径访问的方式打开文件夹.如上图,就是attrib命令的隐藏文件夹和显示文件夹的两条命 ...
- css设置层级显示
效果: 代码: <li id="tabIdcontent4" class="nomal" tabid="content4" style ...
- iOS的基本图形绘制
绘图的步骤: 1.获取上下文 2.创建路径(描述路径) 3.把路径添加到上下文 4.渲染上下文 通常在- (void)drawRect:(CGRect)rect这个方法里面绘制图形 为什么要再draw ...
- C# 开发技巧]如何防止程序多次运行 线程 进程
程序员必有一些好习惯,我的就是看到好文章就收下 文章来源 http://www.cnblogs.com/zhili/p/OnlyInstance.html 转载请注明出处 最近发现很多人在论坛中问 ...
- learn from 德国老师
最近在跟踪德国来的一个老师学android,感触比较深的一点就是他对细节的理解,一个源代码他可以从第一行解释到最后一行,知道每一行的意思和用法,这可能就是德国人对细节的追求. 刚才想了一下写代码确实应 ...
- VS找不到MFC90d.dll错误
VS 2005/VS 2008在生成可执行文件时使用了一种新的技术,该技术生成的可执行文件会伴随生成一个清单文件(manifest file)(.manifest后缀文件)(其本质上是XML文档,你可 ...
- Java谜题心得
1,二进制浮点数的运算是对实际算数的一种近似运算. 2,IEEE 754浮点算术保留了一个特殊的值用来表示一个不是数字的数量[IEEE 754].这个值就是NaN(“不是一个数字(Not a Numb ...