token存入前端的请求头中,后端获取【秒杀项目】

发布于:2024-05-20 ⋅ 阅读:(153) ⋅ 点赞:(0)

前言

2023-08-28 17:34:39

token存入前端的请求头中,后端获取【秒杀项目】

token存入前端的请求头中

function set_login_status() {
    var $A = $(".user-name");
    if (!$A) return false;

    $.ajax({
        type: "GET",
        url: SERVER_PATH + "/user/status",
        xhrFields: {withCredentials: true},
        beforeSend: function(xhr) {
            xhr.setRequestHeader('Authorization', 'Bearer ' + window.sessionStorage.getItem("token"));
        },
        success: function (result) {
            if (result.status == "0" && result.data) {
                $A.text(result.data.nickname);
                $("#user-info").show();
            } else {
                $("#user-info").hide();
            }
        }
    });    
}

function logout() {
    $.ajax({
        type: "GET",
        url: SERVER_PATH + "/user/status",
        xhrFields: {withCredentials: true},
        beforeSend: function(xhr) {
            xhr.setRequestHeader('Authorization', 'Bearer ' + window.sessionStorage.getItem("token"));
        },
        success: function (result) {
            if (result.status) {
                alertBox(result.data.message);
                return false;
            }
            alertBox("已经注销!", function(){
                window.location.href = "./login.html"
            });
        }
    });    
}

后端获取

    @RequestMapping(path = "/logout", method = RequestMethod.GET)
    @ResponseBody
    public ResponseModel logout(HttpServletRequest request) {
//        session.invalidate();

        String token = request.getHeader("Authorization");
        if (StringUtils.isNotEmpty(token)) {
            redisTemplate.delete(token);
        }
        return new ResponseModel();
    }


    @RequestMapping(path = "/status", method = RequestMethod.GET)
    @ResponseBody
    public ResponseModel getUser(HttpServletRequest request) {
//        User user = (User) session.getAttribute("loginUser");

        String token = request.getHeader("Authorization");
        User user = null;
        if (StringUtils.isNotEmpty(token)) {
            user = (User) redisTemplate.opsForValue().get(token);
        }

        return new ResponseModel(user);
    }

网站公告

今日签到

点亮在社区的每一天
去签到