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、最后把代码跑起来,看一下手机收到的效果,这些内容都是可以改的。

好了,到这里就结束了,如有错误,请指正。

实现短信验证码登录——学习笔记相关推荐

  1. spring-security学习(六)——短信验证码登录

    文章目录 前言 spring-security认证流程 自定义短信验证码登录 总结 前言 前面几篇博客完成了验证码的重构和说明,这一篇开始介绍自定义的短信验证码登录. spring-security认 ...

  2. OAuth2.0 - 自定义模式授权 - 短信验证码登录

    一.OAuth2.0 - 自定义模式授权 上篇文章我们分析了目前的情况,演示了微服务的大环境下在保证安全的情况下通过SpringGateWay实现统一的鉴权处理,但是前面的演示中,我们都是基于用户名密 ...

  3. 短信验证码登录流程思路及详细步骤

    点击蓝色"java大数据修炼之道"关注我哟加个"星标",每晚21:00,一起学技术 来源: blog.csdn.net/classabcd/article/de ...

  4. SpringBoot OAuth2.0 使用短信验证码登录授权

    SpringBoot OAuth2.0 使用短信验证码登录授权 实现步骤: 自定义授权器,继承 AbstractTokenGranter 类: 重写 getOAuth2Authentication 函 ...

  5. 手把手带你在集成SpringSecurity的SpringBoot应用中添加短信验证码登录认证功能

    本文目录 前言 1 自定义AuthenticationToken类 2 自定义AuthenticationProvider类 3 自定义MobilePhoneAuthenticationFilter ...

  6. cas5.3.9自定义手机短信验证码登录

    cas自定义多种登录方式 cas添加手机短信验证码登录 cas添加手机短信验证码登录 全部基于SpringBoot,以及SpringWebflow开发,请在有此基础再进行学习! 添加Maven依赖 & ...

  7. 5.Spring Security 短信验证码登录

    Spring Security 短信验证码登录 在 Spring Security 添加图形验证码一节中,我们已经实现了基于 Spring Boot + Spring Security 的账号密码登录 ...

  8. 【每日随笔】电子签名 ( 下载 “e 签保“ 应用 | 使用 手机号 + 短信验证码 登录 | 发起签署 | 签名 | 获取签名后的 PDF 文件及出证信息 )

    文章目录 一.下载 "e 签保" 应用 二.使用 手机号 + 短信验证码 登录 三.发起签署 四.签名 五.获取签名后的 PDF 文件及出证信息 一.下载 "e 签保&q ...

  9. java antd实现登录,基于 antd pro 的短信验证码登录

    概要 整体流程 前端 页面代码 请求验证码和登录的 service (src/services/login.js) 处理登录的 model (src/models/login.js) 后端 短信验证码 ...

最新文章

  1. mysql统计出每个姓氏的人数_你见过什么偏僻的姓氏?明明是老虎的虎姓氏却读māo...
  2. 电信、联通、移动、其它路由表 2011-06-19更新
  3. nrf51822蓝牙学习笔记之实例分析PPI和SHORT
  4. Android怎么导入Moudle
  5. 东北大学c语言及程序设计,东大20秋学期《C语言及程序设计》在线平时作业1参考...
  6. 各种损失损失函数的使用场景和使用方法:KL散度
  7. Android onKeyDown、onKeyUp、dispatchKeyEvent的区别
  8. java 字符串contain_如何使用java.lang.String.contains()方法
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的实习生招聘网站
  10. PostgreSQL删除数据
  11. 怎样用计算机自带软件打电话,怎样用电脑拨号打电话 yuntel电话助手自动拨号软件...
  12. OpenCore配置文字说明(第二版)基于056(03-02官方正式版)
  13. vc调试总是提示项目已过期
  14. jvm调试工具arthas的tt命令记录参数和返回值使用案例
  15. 商用计算机使用温度,电脑一般的使用温度为?
  16. python字符串长度输出_python输出指定长度的字符串
  17. HtmlUnit基础
  18. 旋转电机设计_尤哈·皮罗内 PDF完整版下载 网盘分享
  19. C语言----排班系统
  20. 有效触点归因“强助攻“,对广告主的一大爆击

热门文章

  1. 016 可接任务遍历(链表+二叉树)
  2. 优酷、腾讯视频分享代码html替换通用
  3. 实现访问http 自动跳转到https
  4. XDOJ最小周期串 297
  5. 测试:你是哪一种人才?
  6. Caffe中Layer_factory详解
  7. 基于Linux的环境变量的定制 http://www.yuanma.org/data/2006/0803/article_1301.htm
  8. 项羽为什么会输给刘邦
  9. 项羽的诗歌,你还记得吗?
  10. JAVA数组(输出26个英文字母)