1:这种方式为在线刷新,比方说设定的token有效期为30min,那么每次访问资源时,都会在拦截器中去判断一下
token是否过期,如果没有过期就刷新token的时间为30min,反之则会重新登录,需要注意的是这种方式我是在登
录以后就将token存在了redis.
//登录方法中将token存在redis
String token =JwtUtil.sign(userName,user.getId());
redisUtil.set(UserConstants.PREFIX_USER_TOKEN +token, token,UserConstants.TOKEN_EXPIRE_TIME);
Map map=newHashMap();
map.put(“token”, token);returnResult.success(map);
//在拦截器中获取token,并判断token的有效期
String token=req.getHeader(UserConstants.ACCESS_TOKEN);if(Strings.isNullOrEmpty(token)) {return false;
}
Object reqToken=redisUtil.get(UserConstants.PREFIX_USER_TOKEN+token);if(ObjectUtils.isEmpty(reqToken)) {return false;
}if(redisUtil.getExpire(UserConstants.PREFIX_USER_TOKEN+token) <1){return false;
}
redisUtil.set(UserConstants.PREFIX_USER_TOKEN +token, token,UserConstants.TOKEN_EXPIRE_TIME);return true;