通过cookie实现记住登录状态
基于用session来判断用户的登录状态,然后用存放在浏览器的cookie来判断是否需要帮助登录
登录时存cookie到客户端
// 是否记住登录状态
if (remember != null && remember == 1) {
// 免登录,将登录信息放入cookie
String cookieValue = CookieUtils.getCookieValue(userAccount, md5, request);
if (StringUtils.isBlank(cookieValue)) {
// 生成cookie失败,放弃设置cookie
return Message.success();
}
// 过期时间
String cookieTimeout = Conf.getValue(CookieUtils.COOKIE_TIMEOUT, CookieUtils.COOKIE_PATH);
try {
int cookieTimeoutInt = Integer.parseInt(cookieTimeout);
// 创建Cookie
Cookie cookie = new Cookie(CookieUtils.COOKIE_KEY, cookieValue);
cookie.setHttpOnly(true);
// 有效期,秒为单位
cookie.setMaxAge(cookieTimeoutInt);
// 设置cookie
response.addCookie(cookie);
} catch (NumberFormatException e) {
e.printStackTrace();
}
} else {
// 不记住登录状态,则让cookie过期
CookieUtils.invalidateCookie(request, response);
}
验证是否有cookie
/**
* 判断用户是否是登录状态
*/
private boolean isLogin(HttpServletRequest request) {
//验证session是否存在
HttpSession session = request.getSession();
Object obj = session.getAttribute