Redis的出现

image1

image2

用string还是hash?
image3

image4

首先, 我们将session换成redis,
登录接口的过程中有前端发来基本信息, 我们进行校验完毕后
检查是否有该用户,(无则create)
然后生成uuid, 将User—>UserDTO—->userMap,存入redis

由于登录之后各种操作都需要验证以确保在登录状态访问数据,
但是如果在每个操作都添加认证,会冗余.
因此我们把认证操作放在拦截其中,
然后拆解userMap—->userDTO

当一个类不是spring管理的bean时,
他所依赖的对象(成员变量)都不能靠spring自动完成依赖注入,
但我们可以在其构造方法的形参上传递所需要的成员变量
然后在其构造方法中赋值给成员变量
image5

image6

登录状态下的所有操作都得走LoginInterceptor
(原先我们把刷新token过期时间放在这里了,那无需登录的就不必刷新了吗?)

那一些不需要登录的操作呢?

因此我们加一层拦截器拦截所有操作(主要目的是为了刷新,
但是其实也可以移交LoginInterceptor的功能,
即保存当前redis用户到threadlocal)
这样只需要在login检查threadlocal有没得user

image7