-
[武汉|结业弟子]JAVA-谭道霄0编辑于2018-03-17
-
[郑州|结业弟子]JAVA-何爽0
1.任务5要求我们做一个拦截器拦截url为/u的页面,此时需要注意的是当我们登录之后可以访问这个地址,退出的时候就不能再访问,这是任务要求。
2.在这个要求中间存在一个问题:
(1)只关闭一个页面不关闭浏览器时,sessionID并没有发生变化,此时将验证登录的token放在cookie里面即可,不需要关注sessionID。
(2)关闭了浏览器,重新打开,此时sessionID发生变化,那么token即使不变,我们依然不能实现登录信息的保存;这时就需要我们将sessionID放在cookie中并设置一个有效时长,当我们重新打开浏览器的时候携带了本地cookie里面的sessionID和token实现了登录信息的保存。
3.注意点击账号注销时应销毁cookie。
4.这是我自己的部分代码,可以作为参考:
登录时:
@RequestMapping(value = "/loginResult")
public String Login(User user, Model model,HttpServletResponse response,HttpSession session) throws Exception {
String message = userService.login(user);
if (message.equals("true")) {
String token = jwt.generateToken(user.getUserName(),3600000);
session.setAttribute("username",user.getUserName()+"欢迎您登陆!!");
System.out.println(token);
Cookie cookie = new Cookie("token",token);
cookie.setMaxAge(5*60);
response.addCookie(cookie);
Cookie cookieSId = new Cookie("JSESSIONID",session.getId());
cookieSId.setMaxAge(5*60);
response.addCookie(cookieSId);
System.out.println(cookie);
return "redirect:/home";
} else {
model.addAttribute("message", message);
return "login";
}
}编辑于2018-09-07
- 去第 页