token验证的退出功能
如果是退出登录的就加入token黑名单,在JWT验证的时候,判断一下token是不是黑名单,如果是,就返回
JWT令牌Token登录验证
/*** 用户退出登录** @param request* @return*/@PostMapping("/logout")public R<String> logout(HttpServletRequest request) {//获取tokenString token = request.getHeader("Authorization");DecodedJWT decodedJWT = JwtUtils.checktoken(token);//获取token的过期时间Date tokenDate = decodedJWT.getExpiresAt();//获取token过期时间和当前的时间差Long secondsFromNow = TjDateUtils.getSecondsFromNow(tokenDate);//把token加入redis缓存做为黑名单,并设置过去时间//token作为key,value可以随便写,第三个参数是过期时间,第4个参数是时间单位(秒)redisTemplate.opsForValue().set(token, "1", secondsFromNow, TimeUnit.SECONDS);return R.success("退出登录成功!");}
session验证的退出功能
/*** 用户退出登录* @param request* @return*/@PostMapping("/logout")public R<String> logout(HttpServletRequest request){//清理Session中保存的当前登录员工的idrequest.getSession().removeAttribute("users");return R.success("退出成功!");}
