5 登录 成功设置cookie

//后台获取 cookie

String username = String.valueOf(CookieHelper.getValue("user", request));


    /**

     * 用户登录

     *

     * @param account:账号

     * @param password:密码

     * @return 是否登录成功

     */ 

  public ResponseModel<ResponseCode, Object> login(String account, String password) {
        ResponseModel<ResponseCode, Object> responseModel = new ResponseModel<>();
        if (Strings.isNullOrEmpty(account)) {
            responseModel.setCode(ResponseCode.FAILED)
                    .setMsg("请输入账号");
        } else if (Strings.isNullOrEmpty(password)) {
            responseModel.setCode(ResponseCode.FAILED)
                    .setMsg("请输入密码");
                        } else { 
              try {
                AccountPojo pojo = new AccountPojo();
                pojo.setAccount(account);
                //通过账号查询出数据,看账号是否存在
                AccountPojo accountPojo = accountMapper.selectOne(pojo);
                    if (accountPojo == null) {
                    responseModel.setCode(ResponseCode.FAILED)
                            .setMsg("账号不存在");
                } else if (!Strings.isNullOrEmpty(accountPojo.getIpwhite())) {
             String[] ipSplit = accountPojo.getIpwhite().split(",");
                    for (String ip : ipSplit) {
            if (!RequestHelper.getIp(request).equalsIgnoreCase(ip)) {
                            responseModel.setCode(ResponseCode.FAILED)
                                    .setMsg("非法IP");
                        } else { 
                           responseModel.setCode(ResponseCode.SUCCESS)
                                    .setMsg("IP正确");
                        }
                    }
                }
              if (!responseModel.getCode().equals(ResponseCode.SUCCESS)) {
                    return responseModel;
                } else if (accountMapper.selectOne(pojo.setPassword(MD5Helper.encrypt(password))) == null) {
              responseModel.setCode(ResponseCode.FAILED)
                           .setMsg("账号或密码错误");
                } else { 
                responseModel.setCode(ResponseCode.SUCCESS)
                            .setMsg("登录成功"); 
                     if (accountPojo != null) {
                        //登录成功把用户信息保存在cookie
                  LoginInfoHelper.updateLoginInfo(account, (accountPojo.getName() == null ? "" : 
                         accountPojo.getName().trim()), response);
                    }
                }  
               } catch (Exception e) {
                e.getStackTrace();
                responseModel.setCode(ResponseCode.INNER_ERROR)
                        .setMsg("内部错误")
                        .setException(e);
            }
        }
  return responseModel;
    }

 /**

     * 退出登录的时候删除cookie

     *

     * @return cookie销毁

     */

    @RequestMapping("removecookie")
  public String deleteCookie(HttpServletResponse response, HttpServletRequest request) {
        ResponseModel<ResponseCode, Object> responseModel = new ResponseModel<>();
        try {
            Cookie[] cookies = request.getCookies();
         if (cookies != null) {
                for (Cookie cookie : cookies) {
                    if (cookie.getName().equals("user")) {
                    CookieHelper.set("user", null, response);
                        cookie.setValue(null);
                        cookie.setMaxAge(0);// 立即销毁cookie
               response.addCookie(cookie);
                    }
                }
            }
      responseModel.setCode(ResponseCode.SUCCESS);
        } catch (Exception ex) {
            responseModel.setCode(ResponseCode.FAILED)
                    .setMsg("内部错误");
        }
        return responseModel.toString();
    }
前台获取cookie //获取cookie的值

function getCookie(cookieName) {
    var strCookie = document.cookie;
    var arrCookie = strCookie.split("; ");
    for(var i = 0; i < arrCookie.length; i++){
        var arr = arrCookie[i].split("=");
        if(cookieName == arr[0]){
            return arr[1];
        }
    }
    return "";
}
var user_id = getCookie("uid");//拿到名字为uid的cookie值
 
c_start=document.cookie.indexOf("uid=");//取得这个cookie名在整个cookie中的位置
//判断cookie是否有uid
if(c_start == -1){
     //没有uid的时候
     
}

function removeCookie(name) {
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    var cval = getCookie(name);
    if (cval != null)
        document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
}

/*转换时间 String类型的时间转成 yyyy-MM-dd HH:mm:ss */
function convertDateFromString(dateString) {
    if (dateString) {
        var arr1 = dateString.split(" ");
        var sdate = arr1[0].split('-');
         var tdate = arr1[1].split(':');
        return new Date(sdate[0], sdate[1] - 1, sdate[2], tdate[0], tdate[1], tdate[2]);
    }
}



 layer.confirm('你确定要退出登录吗?', function () {
            $.ajax({
                type: "POST",
                url: root + "api/account/removecookie",
                dataType: "json",
                data: {},
               success: function (response) {
                    if (response.code === 'SUCCESS') {
                        window.location.href = "login.html";
                    } else {
                        layer.alert(response.msg);
                  }
                },
                error: function () {
                    SD_ACT_INDEX.error();
                }
            });
        });
```
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、cookie的作用 在我们平常写的B/S程序中,会经常用到cookie,主要有以下一些作用: 1、记录用户名和...
    Bookcyj阅读 2,970评论 0 1
  • 一、表单提交方式之Get和Post的区别 Get:以明文的方式通过URL提交数据,数据在URL中可以看到。提交的数...
    潜心之力阅读 2,385评论 1 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,790评论 19 139
  • 差不多有一个多月没有更新了,因为这段时间在做一件事情:学习netty,当然并没有学完现在相当于是一个学习前的一个前...
    小鸡在路上阅读 358评论 0 1
  • 1,基本概念 cookie机制采用的是在客户端保持状态的方案,当你在浏览网站的时候,cookie是一个文本信息,会...
    代码墨白阅读 125评论 0 0

友情链接更多精彩内容