关闭浏览器之后需要重新登录
一般我们使用 session 记录登录信息,但是浏览器关闭之后,我们需要重新登录 因为 session 的过期时间是:会话 sessionId 是存储在浏览器的 cookie 中的,会话就说明 sessionId 存在浏览器的内存中,并没有持久化到硬盘 所以浏览器关闭之后,sessionId 就删除了。
解决方法: 单个方法设置cookie有效期
// 设置cookie响应给浏览器
Cookie cookie = new Cookie("JSESSIONID", URLEncoder.encode(request.getSession().getId(), "utf-8"));
// 设置cookie有效期为7天
cookie.setMaxAge(60 * 60 * 24 * 7);
response.addCookie(cookie);
// 方法里的注解参数拿指定的cookie
public Result login(@CookieValue(value = "JSESSIONID", required = false) String sessionId) {...}
全局配置cookie默认有效期
// SpringBoot application.yml配置里添加以下配置
server:
servlet:
session:
cookie:
name: SESSION
http-only: true
max-age: 604800
约 680 字