后台获取用户登录信息


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,未登录状态
  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值