直接上码
1.首先封装3个cookie 函数,直接复制贴走
// 设置cookie
const setCookie = (c_name,value,expiremMinutes) => {
var exdate = new Date();
exdate.setTime(exdate.getTime() + expiremMinutes * 60 * 1000);
document.cookie= c_name + "=" + escape(value)+((expiremMinutes==null) ? "" : ";expires="+exdate.toGMTString());
};
// 读取cookie
const getCookie = (c_name) => {
if (document.cookie.length>0)
{
var c_start=document.cookie.indexOf(c_name + "=");
if (c_start!=-1)
{
c_start=c_start + c_name.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 ""
};
// 删除cookie
const delCookie = (c_name) => {
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval = getCookie(c_name);
if(cval!=null){
document.cookie = c_name + "=" + cval + ";expires=" + exp.toGMTString();
}
};
2.定义变量
data() {
return {
nameInput: '', // 账号
pawInput: '', // 密码
keepchecked: true, // 记住密码
}
}
- 进入登录页,判断是否有cookie 密码
mounted() {
//读取cookie中的账号信息,如果有accountInfo的话,则说明该用户之前勾选了记住密码的功能,则需要自动填上账号密码
this.loadAccountInfo();
},
methods: {
// 判断 cookie 有无密码
loadAccountInfo: function(){
let mySelf = this;
let accountInfo = getCookie('accountInfo');
//如果cookie里没有账号信息
if(Boolean(accountInfo) == false){
return false;
}
else{
//如果cookie里有账号信息
let userName = '';
let passWord = '';
let index = accountInfo.indexOf("&");
userName = accountInfo.substring(0,index);
passWord = accountInfo.substring(index+1);
mySelf.nameInput = userName;
mySelf.pawInput = passWord;
mySelf.keepchecked = true;
}
},
}
4.账号密码登录成功,存储 cookie
if(res.Code === 202){
if ( res.Data ) {
// 勾选记住密码,写入Cookie , 没有勾选记住密码,删除账号Cookie
if( this.keepchecked ) {
let accountInfo = this.nameInput + "&" + this.pawInput;
setCookie('accountInfo', accountInfo ,1440*3)
} else {
delCookie('accountInfo')
}
}
}