前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Redis②实战篇---课程介绍及短信登录

Redis②实战篇---课程介绍及短信登录

作者头像
用户11288958
发布2025-01-17 14:09:47
发布2025-01-17 14:09:47
730
举报
文章被收录于专栏:学习学习

如有侵权立马删除!!!!!!!

一、实战篇课程介绍

选择黑马点评项目进行redis实战篇的应用。 社交类的项目里面对redis的应用非常丰富。 还有电商类的业务场景 把redis中各种数据结构都应用到了。

e0d942d568de4b90a0f992ef46296e51.png
e0d942d568de4b90a0f992ef46296e51.png
ec5c54c295024a1596708ebb469a6030.png
ec5c54c295024a1596708ebb469a6030.png

项目架构

cac6878ce8e54958a7ef473dcb916d57.png
cac6878ce8e54958a7ef473dcb916d57.png

二、导入黑马点评项目

导入后端项目

173cff511ad44fb188982abe7226a0ee.png
173cff511ad44fb188982abe7226a0ee.png

http://localhost:8081/shop-type/list

导入前端项目

c9561f649efb46bb856c0bee7bf1510c.png
c9561f649efb46bb856c0bee7bf1510c.png
0b2eb411e5fd4714bf6a77cdcc8bfcc1.png
0b2eb411e5fd4714bf6a77cdcc8bfcc1.png

三、基于Session实现短信登录流程图

8b9397cfa5384ad18022d68f32da59d3.png
8b9397cfa5384ad18022d68f32da59d3.png

四、基于Session实现发送短信验证码的功能

e453da211d69406ebc71a1b38df70d2d.png
e453da211d69406ebc71a1b38df70d2d.png

五、基于Session实现验证码登录

84e4a8cd25c54425a65147ce854170f8.png
84e4a8cd25c54425a65147ce854170f8.png

六、 基于Session实现登录验证功能

e5aa389f6f504a558b324029cf5645b0.png
e5aa389f6f504a558b324029cf5645b0.png
d040cf9514c84ecbb1f51a52c94444c4.png
d040cf9514c84ecbb1f51a52c94444c4.png
81c507f305b547e8b6008f5f6e9b5bc5.png
81c507f305b547e8b6008f5f6e9b5bc5.png

七、隐藏用户敏感信息(User类转UserDTO)

8b787bf157894157b1e482a47c66cb81.png
8b787bf157894157b1e482a47c66cb81.png

八、短信登录Session共享的问题分析

e020d5eb717a491aa65a0fe1045dff4c.png
e020d5eb717a491aa65a0fe1045dff4c.png

九、基于 Redis代替Session的业务流程

保存验证码。使用字符串类型 key 是手机号 value 是验证码

31084af3a96442bbbefbbe34c1c9f5eb.png
31084af3a96442bbbefbbe34c1c9f5eb.png
2768f081251b4217a9079e5cd7c21a2e.png
2768f081251b4217a9079e5cd7c21a2e.png

保存用户信息到redis 推荐使用哈希结构 key 是token。随机字符串 value 是用户信息。 方便客户端提取到用户信息进行登录校验。 Session的话(登录凭证) Tomcat会自动把SessionId写到浏览器的Cookie里。每次请求。带着Cookie,就带着SessionId来了。根据SessionId找到Session。从而找到用户。这里的SessionId就是登录凭证。 Redis的话(登录凭证) 现在的登录凭证就是token。因此以后用户来访问就要带着token。我们需要手动将token返回给客户端。客户端把这个token保存下来。这样以后每次请求就携带token了。服务器看到客户端拿到token。服务器就可以基于token。拿到redis中的用户信息。就可以进行用户登录校验了。 客户端存储token 服务器将token返回给前端。前端将token存储下来。sessionStorage是浏览器的一种存储的方法。

83508f19849c4898a605202722c2d462.png
83508f19849c4898a605202722c2d462.png

common.js中 获取到token。再用axjos请求。利用拦截器。每次浏览器发起请求之前。将token作为请求头。头的名字叫做authorization这样以后凡是有axjos发起的请求。都会携带token。将来在服务端就可以获取authorization。也就获取到了token了。从而实现对登录的验证 存储用户信息key不能使用手机号的原因 将来把手机号返回到前端。保存到浏览器,不太安全。会有泄露的风险。因此不能使用手机号。

964e4de619774179ae7fb357599077cd.png
964e4de619774179ae7fb357599077cd.png
11bc1ab8ad6745cf823dc1a4b9ca2c34.png
11bc1ab8ad6745cf823dc1a4b9ca2c34.png

a2df04f9ac0a45d393a4fc9d0cd7f467.png
a2df04f9ac0a45d393a4fc9d0cd7f467.png

十、基于redis实现短信登录

写代码:已经写好了

十一、解决状态登录的刷新问题

登录拦截器的优化

我们现在的拦截器只是用户访问关于需要登录的页面才会生效。

实现:只要用户一直访问,token有效期就一直被刷新。

再添加一个拦截器。 第一个拦截器拦截一切路径,只做如下五步。 第二个拦截器,查询ThreadLocal的用户

9d7c5b99a526446aa0086f65b7fa375d.png
9d7c5b99a526446aa0086f65b7fa375d.png

总结:

e23da2f3b5bc4b74bf08a3bab7efb200.png
e23da2f3b5bc4b74bf08a3bab7efb200.png
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-01-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如有侵权立马删除!!!!!!!
  • 一、实战篇课程介绍
    • 项目架构
    • 导入后端项目
    • 导入前端项目
  • 三、基于Session实现短信登录流程图
  • 四、基于Session实现发送短信验证码的功能
  • 五、基于Session实现验证码登录
  • 六、 基于Session实现登录验证功能
  • 七、隐藏用户敏感信息(User类转UserDTO)
  • 八、短信登录Session共享的问题分析
  • 九、基于 Redis代替Session的业务流程
  • 十、基于redis实现短信登录
  • 十一、解决状态登录的刷新问题
    • 登录拦截器的优化
  • 总结:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档