短信登录(基于redis实现短信登录)

修改代码(之前的基于session)

发送验证的逻辑:(更改就是将短信验证码存到redis中)

第一步:注入SrtingRedisTemplate (userserviceImpl中)

第二步:保存到redis中(.opsForValue().Set)

1、我们加个业务前缀显得有层次感

2、我们设置一个有效期(想我们用的验证码1分钟有效这种)

第三步:定义一些常量(防止我们前面的什么业务前缀写错了,而且更有逼格嘛)

声明一些常量(public static final)

优化:

短信验证码的登录和注册的逻辑:

改动1:验证验证码之前从session中获取,现在从redis中获取

改动2:用户信息判断后之前保存在session中,现在保存在redis中

  1. 保存在redis我们用存储用hash存储
  2. 注意redis的key用一个随机的token作为key
  3. Token还需要我们手动返回给前端

第一步:(opsForValue().get())

第二步:

第三步:

优化1:给token设置一个有效期(存的的时候无法设置,只有存完后再设置(这里的有效期是从我们登录开始算的))

优化二:(我们的有效期应该是我们只要一直在访问那么我的有效期应该一直是30。只有我们超过30分钟不访问我们我们才会把登录状态给删除)

解决思路:我们怎么知道用户是不是一直在访问?我们若是过了拦截器那我们就是在访问状态,只有我们不触发拦截器就是我们没有在一直访问。(我们去更改拦截器逻辑)

第一步:注入StringRedisTemplate(且只能通过构造函数来注入(因为这个拦截器的类是我们自己new出来的不是通过spring创建的:头上面有注解就是spring创建的))

我们如何注入?谁用到了他,就在谁哪里注入(去这个拦截器)

这里的逻辑我解释一下:这里的mvcConfig有@configuration所以我们就可以用注解@Resource去注入获取StringRedisTemplate对象。我们再放进去。那么后面在那里就拿到了

第二步:(解决逻辑)

改动了下

再改下bug:Long不能转发为String(其中StringRedisTemplate只能是string,string类型的存取(即key和value都要是string类型)。而我们UserDto的id是个Long就无法存进redis了)

 

改动:

总结:

24、短信登录(基于redis实现短信登录)相关推荐

  1. 基于redis的短信验证码服务开发

    基于redis的短信验证码服务开发 目前可以提供的验证码服务平台有很多,这里选择阿里大于短信验证码服务平台,里面有10元体验卷可以免费试用,不多说上代码.写代码之前需要去阿里大于平台申请验证码服务,同 ...

  2. 单点登录-基于JWT机制的单点登录

    1.认证过程 登录: 1)第一次认证:第一次登录,用户从浏览器输入用户名/密码,提交后到服务器的登录处理的Action层(Login Action): 2)Login Action调用认证服务进行用户 ...

  3. Redis框架(三):大众点评项目 基于Session的短信登录

    大众点评项目 基于Session的短信登录 需求:基于Session实现短信验证登录 基于Session的短信登录 发送手机验证码 实现登录 (注意MyBatisP的接口使用) 新的问题 Spring ...

  4. 1.Redis实战—短信登录

    短信登录: 基于Redis缓存: (1)发送短信验证码: 实现逻辑 : 先校验手机号 , 不符合 直接返回错误信息 , 使用的是封装的返回前端的方法 符合 , 生成一个随机验证码 , 使用的是huTo ...

  5. 【Redis学习02】基于session和基于redis实现登录功能

    文章目录 前言 1. 基于session实现短信登录功能 1.1 发送短信验证码 1.2 短信验证登录 1.3 登录校验功能 2. 集群的Session问题 3. 基于redis实现共享session ...

  6. 魔方APP项目-06-用户注册,完成短信验证码的校验、基于Celery实现短信异步发送、用户登录,jwt登陆认证、服务端提供用户登录的API接口

    一.用户注册- 1.完成短信验证码的校验 application.utils.language.message,代码: class ErrorMessage():ok = "ok" ...

  7. Redis(2)短信验证码登录

    Redis实现短信验证码登录 登录流程 1.发送验证码: 2.短信验证码登录,注册 3.校验登录状态 解决状态登录刷新问题 redis指令参考:https://blog.csdn.net/weixin ...

  8. Redis实战——短信登录

    目录 1 基于Seesion实现短信登录 1.1 发送短信验证码 1.2 登录功能 2 使用Redis进行短信验证码校验登录 2.1 Seesion方法存在的问题 2.2 发送短信验证码 2.3  验 ...

  9. 基于Session实现短信登录

    目录 一.基于Session实现登录 1.1 业务流程图​编辑 二.发送短信验证码 2.1 发送短信请求方式及参数说明 2.2 业务层代码模拟发送短信 三.登录功能 3.1  短信验证的请求方式及路径 ...

最新文章

  1. 2021年春季学期-信号与系统-第十一次作业参考答案-第七小题
  2. 英伟达对ARM、Linux开放光线追踪,SDK已就位,网友:switch也能跑光追的节奏?...
  3. python之类之多继承
  4. 用Matlab分享一个软件低通滤波算法
  5. 【Ps问题】PS旋转功能会让图片乱飞的解决方法
  6. Unity小地图的实现
  7. Linux--进程与任务管理(查看和控制进程及计划任务管理)
  8. 达梦数据库联机与脱机备份还原
  9. 题解_UVA_11134_Fabled Rooks
  10. 如何使用miniconda(小白入门版)
  11. Python爬取全国大学排名 用pyecharts进行大屏可视化
  12. Daily record-July
  13. 没有基础半路学编程,靠谱吗?
  14. EBS-PO接收控制状态的处理
  15. 强强联合 加速科技“牵手”清华大学达成深度战略合作
  16. 周大福向北京体育大学教育基金会捐赠1.2亿元设立“郑家纯冠军培养基金”
  17. [Android编译(二)] 从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机
  18. 【常用工具类】Java控制台打印工具类LogUtil
  19. 来看看你是不是真的了解 RSA 加密算法,查漏补缺!
  20. it项目验收--流程

热门文章

  1. Spark MLlib之协同过滤
  2. 银河麒麟桌面操作系统V10 升级到V10(sp1)注意事项
  3. quartz储存方式之JDBC JobStoreTX
  4. Android camera onPreviewFrame 图片旋转问题
  5. 哈尔滨工程大学计算机考研复试技巧
  6. php h1怎么居中,html-如何在div中垂直居中放置H1?
  7. MySQL 查询 树结构
  8. JVM配置参数-X与-XX的区别
  9. 发现一个好玩的网站镜站网,可以一键镜像网站
  10. ASP.NET Core MVC 从入门到精通之初窥门径