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下实现阿里云短信验证功能 一 开通阿里云短信服务 阿里云官网注册登录 找到短信服务并开通 打开短信服务的管理台 在国内消息那栏中添加签名管理和模板管理(按照格式要求去写) 在右上角 ...
随机推荐
- Snuke's Subway Trip
すぬけ君の地下鉄旅行 / Snuke's Subway Trip Time limit : 3sec / Memory limit : 256MB Score : 600 points Problem ...
- 16级第一周寒假作业F题
Subsequence TimeLimit:1000MS MemoryLimit:65536K 64-bit integer IO format:%lld Problem Description A ...
- Python3基础 当函数中的局部变量与全局变量同名了,各管各的
镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...
- SVN MERGE 和冲突
摘要:最佳做法是避免冲突.冲突时,不要把branch merge到trunk. 先由最新版本的trunk得到branch,然后再修改文件,直接merge过去就行.这样不会有冲突.先用svn merge ...
- Android4.2以后,多屏幕的支持 学习(一)
前几天总结了Android的多用户支持,过几天准备再总结Android的多屏支持.Android支持3种类型屏幕:主屏幕(Primary Display).外屏幕(External Display)和 ...
- 转 互联网推送服务原理:长连接+心跳机制(MQTT协议)
http://blog.csdn.net/zhangzeyuaaa/article/details/39028369 目录(?)[-] 无线移动网络的特点 android系统的推送和IOS的推送有什么 ...
- scrollView顶部空白
在iOS7之后,苹果会自动给导航控制器里面的所有UIScrollView顶部都会添加额外的滚动区域64.
- Raspberry Pi 上使用WN725N连接WIFI
系统版本 lee@Lee-RPi ~ $ uname -ar Linux Lee-RPi + # PREEMPT Thu Dec :: GMT armv6l GNU/Linux 这个版本的系统,已经集 ...
- POJ3352 Road Construction 双连通分量+缩点
Road Construction Description It's almost summer time, and that means that it's almost summer constr ...
- Linux 服务器 常规性能优化设置
为能使linux服务器能最大化的工作,通常需要对linux的通常设置做适当的更改,而这又往往会依据服务器的类型不同,而有所变化. 对于通常的多连接的服务器其参数设置,可在 /etc/sysctl.co ...