//删除cookie
clearCookie(cookieName) {
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval = this.getCookie(cookieName);
if (cval != null) {
document.cookie =
cookieName + "=" + cval + ";expires=" + exp.toGMTString();
}
},
//保存cookie
setCookie(cookieName, value, expiremMinutes) {
var exdate = new Date();
exdate.setTime(exdate.getTime() + expiremMinutes * 60 * 1000);
document.cookie =
cookieName +
"=" +
escape(value) +
(expiremMinutes == null ? "" : ";expires=" + exdate.toGMTString());
},
//获取cookie
getCookie(cookieName) {
if (document.cookie.length > 0) {
var c_start = document.cookie.indexOf(cookieName + "=");
if (c_start != -1) {
c_start = c_start + cookieName.length + 1;
var c_end = document.cookie.indexOf(";", c_start);
if (c_end == -1) c_end = document.cookie.length;
return unescape(document.cookie.substring(c_start, c_end));
}
}
return "";
}
//登录时保存账号与密码
async onSubmit() {
const data = await login(qs.stringify(this.formlogin));
if (data.data.code !== 1000) {
this.$message({
message: data.data.msg,
type: "error"
});
return;
}
this.$message.success("登录成功");
this.setToken(data.headers.authorization);
var accountInfo = "";
var pwd = this.formlogin.password;
var newPwd = CryptoJS.AES.encrypt(pwd, "secret key 123");
if (this.formlogin.rememberMe == 1) {
accountInfo = this.formlogin.username + "&" + newPwd;
this.setCookie("accountinfo", accountInfo, 1440 * 3);
} else {
this.clearCookie("accountinfo");
}
await this.$store.dispatch("user/getUserInfo");
this.$router.push("/home");
},
//获取cookie自动登录
loadAccountInfo() {
let accountInfo = this.getCookie("accountinfo");
if (Boolean(accountInfo) == false) {
return false;
} else {
let userName = "";
let passWord = "";
let index = accountInfo.indexOf("&");
userName = accountInfo.substring(0, index);
passWord = accountInfo.substring(index + 1); //拿到加密后的密码
var bytes = CryptoJS.AES.decrypt(passWord.toString(), "secret key 123");
var newpassWord = bytes.toString(CryptoJS.enc.Utf8);
this.formlogin.username = userName;
this.formlogin.password = newpassWord;
this.rememberMe = 1;
this.onSubmit();
}
},
加密
import CryptoJS from "crypto-js";