项目中用户退出网页下次需要重新登录的解决方法
作为一个刚实习三个月来说的萌新这个问题对我来说还是很困难的,我一开始的想法是在前台使用javascript捕获页面窗口关闭事件onUnload和onbeforeUnload,但是前台根本不起作用,关闭网页就直接关闭了并没有调用后台方法,于是我思考了一下午发现了一个折中的方法。
用户登录之后会生成一个Token
String token = UUID.randomUUID().toString().replaceAll("-", "");
得到Token把Token上传到Redis,我在这里自己写了一个方法,因为我这个项目是手机端和电脑端在一个里面。
getRequestHeader(httpServletRequest,token,u);
/**
* 判断用户是用什么平台登陆
* */
public void getRequestHeader(HttpServletRequest httpServletRequest,String token,User u){
// 获取请求头信息
String info= httpServletRequest.getHeader("user-agent");
// 得到token剩余秒数
System.out.println(l);
//PC端
if(info.contains("Windows") || info.contains("Macintosh")){
//电脑端登录Token有效时间为10分钟
redisTemplate.opsForValue().set(token,u,10,TimeUnit.MINUTES)