栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot使用session和cookie来免登陆

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot使用session和cookie来免登陆

手动登陆,将cookie放入

   @RequestMapping(value = "/login/status",method = RequestMethod.POST)
    // 需要从请求中获取参数,所以需要request对象,需要将数据存放在request作用域,所以需要session对象
    public Object loginStatus(HttpServletRequest request, HttpSession session, HttpServletResponse response) {
        
        JSonObject jsonObject = new JSONObject();

        //从请求体中拿数据
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        // 调用service的方法来获取结果
        boolean res = consumerService.verifyPassword(username, password);
        if (res) {

            // 数据放入json
            Consumer user = consumerService.selectByName(username);
            jsonObject.put(Consts.CODE, 1);
            jsonObject.put(Consts.MSG, "登陆成功");
            jsonObject.put("userMsg",user);

            // 登陆的用户放入request作用域
            session.setAttribute(String.valueOf(user.getId()), user);
            // 添加cookie
            cookie cookie = new cookie("Id",String.valueOf(user.getId()));
            //设置存活时间
            cookie.setMaxAge(7 * 24 * 60 * 60);
            // cookie放至响应头
            response.addcookie(cookie);
            // 将json给前端
            return jsonObject;
        }else{
            jsonObject.put(Consts.CODE, 0);
            jsonObject.put(Consts.MSG, "用户名或密码错误");
            return jsonObject;
        }
    }

添加一个验证cookie的后端api,其实可以设置到拦截器中,但是我比较懒

    @RequestMapping(value = "/login",method = RequestMethod.GET)
    // 需要从请求中获取参数,所以需要request对象,需要将数据存放在request作用域,所以需要session对象, 
    public Object login(HttpServletRequest request, HttpSession session,
                        @cookievalue(value = "Id",defaultValue = "游客")String Id) {

        JSonObject jsonObject = new JSONObject();
        if(session.getAttribute(Id)!=null){

            jsonObject.put("userMsg",session.getAttribute(Id));
            jsonObject.put(Consts.CODE, 1);
            jsonObject.put(Consts.MSG, "欢迎回来");
            return jsonObject;
        }
        jsonObject.put(Consts.CODE, 0);
        jsonObject.put(Consts.MSG, "太久不见,请重新登陆");
        return jsonObject;
    }

关于cookie在springboot的使用https://attacomsian.com/blog/cookies-spring-boot

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/760247.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号