先上代码:
//设置cookie
function setCookie(obj, exdays) {
let exdate = new Date(); //获取当前时间
exdate.setTime(exdate.getTime() + 24 * 60 * 60 * 1000 * exdays); //保存的天数
//遍历传进来的对象取出键值对存储
for (const key in obj) {
const value = obj[key];
window.document.cookie =
key + "=" + value + ";path=/;expires=" + exdate.toGMTString();
}
}
//读取cookie
function getCookie(key = "ALL") {
if (document.cookie.length > 0) {
let arr = document.cookie.split("; "); //这里显示的格式需要切割一下自己可输出看下
let cookieInfo = {};
for (let i = 0; i < arr.length; i++) {
let arr2 = arr[i].split("="); //再次切割
if (key == "ALL") {
cookieInfo[arr2[0]] = arr2[1];
if (i == arr.length - 1) return cookieInfo;
} else if (arr2[0] == key) {
return arr2[1];
}
}
} else {
return undefined;
}
}
//清除cookie
function clearCookie(key) {
// 找到要清除的cookie,修改值为空,天数为负1天就好了
if (document.cookie.length > 0) {
let arr = document.cookie.split("; "); //这里显示的格式需要切割一下自己可输出看下
for (let i = 0; i < arr.length; i++) {
let arr2 = arr[i].split("="); //再次切割
if (key == "ALL" || arr2[0] == key) {
this.setCookie({ [arr2[0]]: undefined }, -1);
}
}
}
}
export default {
setCookie,
getCookie,
clearCookie,
};
setCookie接收两个值,一个是要存储的对象,一个是cookie存在的时间。这个方法会依次拿出对象中的每一个键值对放进cookie中。
引入:
import cookie from "../src/js/cookie";
export default {
data() {
return {
cookie,
};
},
};
setCookie接收两个值,一个是要存储的对象,一个是cookie存在的时间。这个方法会依次拿出对象中的每一个键值对放进cookie中。
let setinfo = {
name:'路途',
token:'dlkhgewlrhqwlh12;lqws;hfsdlfho;1',
phone:'13273888888'
}
this.cookie.setCookie(setinfo, 1);
getCookie调用时默认返回所有的cookie信息,如果传参则查找cookie中有没有这个有则返回
let cookieName = this.cookie.getCookie('name');//路途
let cookieInfo = this.cookie.getCookie();
//{name:'路途',token:'dlkhgewlrhqwlh12;lqws;hfsdlfho;1',phone:'13273888888'}
clearCookie接收一个要删除的cookie名,然后把有效天数设置为-1就自动失效删除了。
this.cookie.clearCookie('name');
7天免登录参考一下别人写的思路:Cookie实现七天免登录