title: 后台获取用户登录信息
date: 2019-11-28
原本在个人博客上写了一些博文,现转移到CSDN上
后台获取用户登录信息
如何从后台将用户的登录信息拿到,在写一些需要判断是否登录以及获取当前登录者信息时是十分必要的。获取用户登录信息就用到了HttpServletRequest request
首先需要将用户的登录信息存储到session中,才能从session中获取已登录的用户的信息。session中还可以设置用户登录信息过期时间。
@RequestMapping(value = "/in", method = RequestMethod.POST)
public String login(@RequestParam(value = "account") String account,
@RequestParam(value = "password_md5") String password,
HttpServletRequest request) {
System.out.println("in");
String ip = IpUtil.getIpAddr(request);
System.out.println(ip);
JSONObject result = userService.validPassword(account, password, ip);
if (result != null) {
// 密码验证成功,将用户数据放入到Session中
HttpSession session = request.getSession();
session.setMaxInactiveInterval(60*60);//设置session过期时间 为60分钟
session.setAttribute("oid", result.get("oid"));
session.setAttribute("uid", result.get("uid"));
session.setAttribute("name", result.get("name"));
WebSocketTest webSocketTest = new WebSocketTest(); //发送websocket信息
webSocketTest.sendMessageToAll("user change");
return "1";
}
return "0";
}
session信息存储之后,即可在你需要的地方通过session获取当前用户登录的信息
@RequestMapping(value = "/addTheme", method = RequestMethod.POST)
public JsonResult addTheme(HttpServletRequest request) throws IOException {
HttpSession session = request.getSession();
if(session.getAttribute("uid") == null){
return ResultUtils.error(-1, "no login");
}
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile file = multipartRequest.getFile("info");
String model = IOUtils.toString(file.getInputStream(), "utf-8");
JSONObject jsonObject = JSONObject.parseObject(model);
ThemeAddDTO themeAddDTO = JSONObject.toJavaObject(jsonObject, ThemeAddDTO.class);
themeAddDTO.setCreator_name(session.getAttribute("name").toString());
themeAddDTO.setCreator_oid(session.getAttribute("oid").toString());
String uid = session.getAttribute("uid").toString();
System.out.println("add theme");
Theme theme = repositoryService.insertTheme(themeAddDTO, uid);
userService.themePlusPlus(uid);
return ResultUtils.success(theme.getOid());
}
首先HttpSession session = request.getSession();
利用session来获取当前用户的属性,包括uid、name、oid等
- 获取属性,赋值给DTO
String uid =session.getAttribute(“uid”).toString();获取当前登录者的信息,取uid赋值给uid字符串 - 判断是否登录
if(session.getAttribute(“uid”) == null),为null时即可返回-1,未登录状态