redis短信登陆

导入黑马项目

本项目不采用微服务的方式,是一个单体的项目,因为核心是学习redis的用法,但是采用前后端分离的模式。springcloud教程属于微服务。

后端将来肯定是部署在tomcat上,但暂时在idea上开发和部署,前端部署在NGINX服务器上。移动端或者pc端请求页面,首先都是想NGINX请求,等到页面资源,然后NGINX向服务端发起请求来查询数据,数据可能来自于Redis集群,也可能来自MySql集群,然后数据再依次返回给用户。虽然是个单体项目,但还是要考虑到将来的并发能力,项目一点要具备水平扩展的能力,即将来部署再tomcat上之后,一个扛不住压力,水平扩展为多个tomcat,做一个tomcat负载均衡的集群,如下图所示。一旦部署集群以后,将来就会出现集群间数据共享的一些问题,也会在后续讲解。

导入后端项目

  1. 在idea中打开hm-dianping项目
  2. 启动项目
  3. 在浏览器访问http://localhost:8081/shop-type/list,如果可以看到数据则表示后端部署成功

导入前端项目

 已经把整个前端代码部署到了NGINX上,我们不需要做任何的配置,只需要去启动。资料在D盘的lesson中

  1. 在nginx所在目录下打开一个CMD窗口(按住shift右击),输入命令:start nginx.exe
  2. 打开chrome浏览器,在空白页面点击鼠标右键,选择检查,即可打开开发者工具
  3. 然后打开手机模式
  4. 然后访问:http://127.0.0.1:8080,即可看到页面

基于Session实现登录

三个步骤

.

发送短信验证码:用户发送请求,服务端校验手机号是否格式正确,不符合则重来,若符合则生成验证码,咋发给用户之前,还要保存在session中,便于后续与用户提交的验证码进行对比。

短信验证码登录、注册:用户收到验证码之后提交验证码和手机号,首先校验验证码,不符合重来,若一致则根据手机号查询数据库,用户若存在,保存用户到session,若用户不存在,快速创建用户,并且保存用户信息到数据库,然后保存用户到session。

校验登录状态:我们将用户保存在session中,将来就要基于session进行校验,session基于cookie,每一个session都有一个sessionID保存在浏览器cookie中,当用户访问时,携带浏览器的cookie,而cookie中有sessionID,从而获得sessionID,从而从session中获取用户,如果session中是否存在该用户,将用户信息缓存起来,因为后续的业务可能会用到用户的信息。此处我们选择缓存到ThreadLocal中,即线程域对象。在业务当中,每一个请求到达我们的微服务,都是一个线程,ThreadLocal会把数据保存到每一个线程的内部,在线程内部创建一个map去保存,这样每一个线程都有自己独立的存储空间,相互不干扰。最后放行。

集群的Session共享问题

基于Redis实现共享Session登录

  • 23
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值