实现短信验证码登录——学习笔记
1、思路:
- 首先我们需要一个短信发送接口,前端发送手机号码到后端,后端随机生成一个验证码并存入redis,并且设置该key的过期时间。(这里可以用手机号做redis的key,保证数据的唯一性)
- 然后后端将该验证码发送给当前的手机号。(第三方短信平台完成,我是用的容联云通讯,因为前面可以免费使用,地址:https://www.yuntongxun.com/)
- 用户拿到验证码后,将验证码发送给后端进行校验
- 后端对传过来的验证码与redis中的进行比较,如果相同就删掉,防止可以校验多次。
2、思路清晰之后我们需要解决的事情是:去容联云官网注册账号,然后登进去,弄好这三个数据
3、这个是代码,需要修改accontSID、accontToken、appId和自己的电话号码,还可以在容联云里面修改发送信息的模板,我这个是用的默认1的模板。
/*** a** @Author zhang* @Date 2022/8/24 9:08*/
package day2;import com.cloopen.rest.sdk.BodyType;
import com.cloopen.rest.sdk.CCPRestSmsSDK;import java.util.HashMap;
import java.util.Set;/*** 短信验证测试* @author*/
public class demo {public static void main(String[] args) {//生产环境请求地址:app.cloopen.comString serverIp = "app.cloopen.com";//请求端口String serverPort = "8888";//主账号,登陆云通讯网站后,可在控制台首页看到开发者主账号ACCOUNT SID和主账号令牌AUTH TOKENString accountSId = "accountSId;String accountToken = "accountToken";//请使用管理控制台中已创建应用的APPIDString appId = "appId";CCPRestSmsSDK sdk = new CCPRestSmsSDK();sdk.init(serverIp, serverPort);sdk.setAccount(accountSId, accountToken);sdk.setAppId(appId);sdk.setBodyType(BodyType.Type_JSON);//随机生成6位数字为验证码String code = String.valueOf(Math.random()).substring(2, 8);System.out.println(code);//需要把验证号转发到的手机号码String to = "自己的手机号码";//在短信管理中选择模板ID,我选择的是1String templateId = "1";//模板参数String[] datas = {code, "30分钟"};//这里是使用了一个哈希map来存放手机号、模板ID、模板参数HashMap<String, Object> result = sdk.sendTemplateSMS(to, templateId, datas);//如果返回0000则正常发送,否则返回异常if ("000000".equals(result.get("statusCode"))) {//正常返回输出data包体信息(map)HashMap<String, Object> data = (HashMap<String, Object>) result.get("data");Set<String> keySet = data.keySet();for (String key : keySet) {Object object = data.get(key);System.out.println(key + " = " + object);}} else {//异常返回输出错误码和错误信息System.out.println("错误码=" + result.get("statusCode") + " 错误信息= " + result.get("statusMsg"));}}
}
4、在pom.xml文件里面添加上下面这段依赖
<dependency><groupId>com.cloopen</groupId><artifactId>java-sms-sdk</artifactId><version>1.0.3</version></dependency>
5、最后把代码跑起来,看一下手机收到的效果,这些内容都是可以改的。
好了,到这里就结束了,如有错误,请指正。
实现短信验证码登录——学习笔记相关推荐
- spring-security学习(六)——短信验证码登录
文章目录 前言 spring-security认证流程 自定义短信验证码登录 总结 前言 前面几篇博客完成了验证码的重构和说明,这一篇开始介绍自定义的短信验证码登录. spring-security认 ...
- OAuth2.0 - 自定义模式授权 - 短信验证码登录
一.OAuth2.0 - 自定义模式授权 上篇文章我们分析了目前的情况,演示了微服务的大环境下在保证安全的情况下通过SpringGateWay实现统一的鉴权处理,但是前面的演示中,我们都是基于用户名密 ...
- 短信验证码登录流程思路及详细步骤
点击蓝色"java大数据修炼之道"关注我哟加个"星标",每晚21:00,一起学技术 来源: blog.csdn.net/classabcd/article/de ...
- SpringBoot OAuth2.0 使用短信验证码登录授权
SpringBoot OAuth2.0 使用短信验证码登录授权 实现步骤: 自定义授权器,继承 AbstractTokenGranter 类: 重写 getOAuth2Authentication 函 ...
- 手把手带你在集成SpringSecurity的SpringBoot应用中添加短信验证码登录认证功能
本文目录 前言 1 自定义AuthenticationToken类 2 自定义AuthenticationProvider类 3 自定义MobilePhoneAuthenticationFilter ...
- cas5.3.9自定义手机短信验证码登录
cas自定义多种登录方式 cas添加手机短信验证码登录 cas添加手机短信验证码登录 全部基于SpringBoot,以及SpringWebflow开发,请在有此基础再进行学习! 添加Maven依赖 & ...
- 5.Spring Security 短信验证码登录
Spring Security 短信验证码登录 在 Spring Security 添加图形验证码一节中,我们已经实现了基于 Spring Boot + Spring Security 的账号密码登录 ...
- 【每日随笔】电子签名 ( 下载 “e 签保“ 应用 | 使用 手机号 + 短信验证码 登录 | 发起签署 | 签名 | 获取签名后的 PDF 文件及出证信息 )
文章目录 一.下载 "e 签保" 应用 二.使用 手机号 + 短信验证码 登录 三.发起签署 四.签名 五.获取签名后的 PDF 文件及出证信息 一.下载 "e 签保&q ...
- java antd实现登录,基于 antd pro 的短信验证码登录
概要 整体流程 前端 页面代码 请求验证码和登录的 service (src/services/login.js) 处理登录的 model (src/models/login.js) 后端 短信验证码 ...
最新文章
- mysql统计出每个姓氏的人数_你见过什么偏僻的姓氏?明明是老虎的虎姓氏却读māo...
- 电信、联通、移动、其它路由表 2011-06-19更新
- nrf51822蓝牙学习笔记之实例分析PPI和SHORT
- Android怎么导入Moudle
- 东北大学c语言及程序设计,东大20秋学期《C语言及程序设计》在线平时作业1参考...
- 各种损失损失函数的使用场景和使用方法:KL散度
- Android onKeyDown、onKeyUp、dispatchKeyEvent的区别
- java 字符串contain_如何使用java.lang.String.contains()方法
- 基于JAVA+SpringMVC+Mybatis+MYSQL的实习生招聘网站
- PostgreSQL删除数据
- 怎样用计算机自带软件打电话,怎样用电脑拨号打电话 yuntel电话助手自动拨号软件...
- OpenCore配置文字说明(第二版)基于056(03-02官方正式版)
- vc调试总是提示项目已过期
- jvm调试工具arthas的tt命令记录参数和返回值使用案例
- 商用计算机使用温度,电脑一般的使用温度为?
- python字符串长度输出_python输出指定长度的字符串
- HtmlUnit基础
- 旋转电机设计_尤哈·皮罗内 PDF完整版下载 网盘分享
- C语言----排班系统
- 有效触点归因“强助攻“,对广告主的一大爆击