//后台获取 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();
}
});
});
```