js使用cookie实现7天免登录
转自:https://blog.csdn.net/u011295864/article/details/89133589
登录成功时setCookie:
function setCookie() {
let userName = 'admin' // 用户名
let passWord = '1' //密码
let cookieName = 'userInfo' // cookie名称
let data = {
username: userName,
password: passWord
}
let d = new Date()
let saveTime = 7// cookie保存时间(单位:天)
d.setDate(d.getDate() + saveTime)
document.cookie = cookieName + '=' + JSON.stringify(data) + ';path=/;expires=' + d.toGMTString()
}
验证cookie是否存在:
function getCookie() {
let cookie = document.cookie
let cookieName = 'userInfo' // cookie名称
let arr = cookie.split('; ') // 将cookie信息和时间戳拆分为数组
let userInfo = null
for (let i = 0; i < arr.length; i++) {
let tempArr = arr[i].split('=') // 将cookie名称和data拆分开,分别是数组的第一个元素和第二个元素
if (tempArr[0] === cookieName) {
userInfo = JSON.parse(tempArr[1])
}
}
if (userInfo) {
// cookie存在,这里可以写跳转语句
console.log(userInfo)
} else {
// 因为cookie不存在,所以不做任何处理
}
}
设置,获取,删除
//cookie相关操作,不需要dom加载完成后运行,因此单独写
//设置cookie
function setCookie(name,value){
if(!name||!value) return;
var Days = 30;//默认30天
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ encodeURIComponent(value) +";expires="+ exp.toUTCString();
}
//获取cookie
function getCookie(name){
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return decodeURIComponent(arr[2]);
return null;
}
//删除cookie
function delCookie(name){
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(!cval) document.cookie=name +"="+cval+";expires="+exp.toUTCString();
}