使用redis实现分布式session
将默认的session存放在tomcat的功能
通过redis保存token-user(key-val)的方式实现分布式session
cookie中保存token,请求前都需要带上cookie(token)去请求接口,后端通过cookie中的token去查询redis来判断当前用户是否已经登录
如果在每一个controller方法中做如下图代码的逻辑判断,无疑是浪费时间,低级的代码复制粘贴
简化之前:由于很多地方需要判断cokkie中的token,来判断用户是否在线,是否已经登录
改进前的controller方法:
@RequestMapping("/to_list")
public String toList(Model model,
@CookieValue(value = ConstUtil.COOKIE_NAME_TOKEN,required = false)String cookieToken,
@RequestParam(value = ConstUtil.COOKIE_NAME_TOKEN,required = false)String paramToken,
HttpServletResponse response){
//假定优先级:cookie》param
if(StringUtils.isEmpty(cookieToken)&&StringUtils.isEmpty(paramToken)){
return "to_login";
}
String token=StringUtils.isEmpty(paramToken)?cookieToken:paramToken;
MiaoshaUser user=userService.getUserByToken(token,response);
model.addAttribute("user",new MiaoshaUser());
return "goods_list";
}