用户登入逻辑
创始人
2025-05-29 14:58:07
0

注:该文章基于黑马程序员中《黑马点评》软件的学习

代码资料
提取码:eh11
主要涉及的代码

MvcConfig
UserController
UserDTO
User
IUserService
UserServiceImpl
LoginInterceptor
RefreshTokenInterceptor
业务过程

1.在界面输入电话号码
2.后台验证电话号码的正确性,发送生成的验证码
3.通过验证码和电话号码比对进行登入
在这里插入图片描述
4.登入后根据用户判断用户是否浏览界面来刷新redis中的token有效期

个人记录内容

关于sendCode方法的记录:

1.用户输入电话号码后,通过调用RegexUtils类中验证电话号码正确性的方法基础判断电话号码是否虚假
2.因为在多台服务器的情况下用session来存储信息,会存在存储浪费,这里的redis存储验证码加手机号和后面的redis存储token是一样的道理,运用redis存储2分钟时效的验证码。
在这里插入图片描述

关于login方法的记录

1.login方法的服务是在用户输入验证码和手机号后开启的
2.该方法再次判断手机格式是否正确,然后判断根据手机号查找redis中是否存储对应的验证码值,目的是为了防止第二次收到的手机号码和上一次获取验证码的手机号码不是同一个。
在这里插入图片描述
3.通过验证后,判断是否是新用户,是新用户创建用户信息存入数据库(真正的业务需再拓展)
4.生成token作为用户的登入凭证,如果直接使用电话号码的话会存在泄露用户信息的可能。为了减少用户信息返回给前端,使用UserDTO类存储部分用户信息来存储在redis中
5.在redis中用hashMap的类型存储,token值做key,UserDTO类做value
并设置在redis中的存储时间,后面有拦截器来刷新用户在redis中token的有效时间来判断用户是否还在程序中浏览。
在这里插入图片描述
在这里插入图片描述

关于拦截器的记录

1.俩个拦截器,一个拦截全部界面用来刷新redis中token的存储时间(为了避免用户在不需要登入的界面浏览过久,导致没有促发刷新token的情况),另一个用来判断用户是否是登入过的用户。
在这里插入图片描述
在这里插入图片描述

2.注册拦截器,将全部拦截的拦截器注册为优先触发

public class MvcConfig implements WebMvcConfigurer {@Resourceprivate StringRedisTemplate stringRedisTemplate;@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new LoginInterceptor()).excludePathPatterns("/shop/**","/voucher/**","/shop-type/**","/upload/**","/blog/hot","/user/code","/user/login").order(1);//用来刷新token的有效期registry.addInterceptor(new RefreshTokenInterceptor(stringRedisTemplate)).addPathPatterns("/**").order(0);}}

相关内容

热门资讯

中证A500ETF摩根(560... 8月22日,截止午间收盘,中证A500ETF摩根(560530)涨1.19%,报1.106元,成交额...
A500ETF易方达(1593... 8月22日,截止午间收盘,A500ETF易方达(159361)涨1.28%,报1.104元,成交额1...
何小鹏斥资约2.5亿港元增持小... 每经记者|孙磊    每经编辑|裴健如 8月21日晚间,小鹏汽车发布公告称,公司联...
中证500ETF基金(1593... 8月22日,截止午间收盘,中证500ETF基金(159337)涨0.94%,报1.509元,成交额2...
中证A500ETF华安(159... 8月22日,截止午间收盘,中证A500ETF华安(159359)涨1.15%,报1.139元,成交额...
科创AIETF(588790)... 8月22日,截止午间收盘,科创AIETF(588790)涨4.83%,报0.760元,成交额6.98...
创业板50ETF嘉实(1593... 8月22日,截止午间收盘,创业板50ETF嘉实(159373)涨2.61%,报1.296元,成交额1...
港股异动丨航空股大幅走低 中国... 港股航空股大幅下跌,其中,中国国航跌近7%表现最弱,中国东方航空跌近5%,中国南方航空跌超3%,美兰...
电网设备ETF(159326)... 8月22日,截止午间收盘,电网设备ETF(159326)跌0.25%,报1.198元,成交额409....
红利ETF国企(530880)... 8月22日,截止午间收盘,红利ETF国企(530880)跌0.67%,报1.034元,成交额29.0...