在做记住账号密码的需求时,我直接使用个人发布的cookie封装设置过期的方法,不清楚是他是写了没测试还是怎么的,设置cookie的expires字段时使用的是toLocaleString();我完全没有防备,稍微变更了一下封装格式就直接使用了啊、调用函数、调试器查看、一套操作行云流水。能设置,超级好;当我再次调用设置过期cookie时,按下F12打开调试器,啪嗒一下、很快啊,一看,设置的cookie还在,我的脸霎时间就肿了,我说小伙子你不讲码德,在代码里搞这种小细节来坑、欺骗我一个七十多岁外表二十多岁实龄的老人。
好了,回归正题。大家应该发现了我就是由于使用的时间格式不对,菜鸟和w3c文档上写的清清楚楚要用
或
格式的时间来设置cookie的expires字段来实现过期自动移除。
附上代码:
setCookie (account, pwd, cexdate) { // 保存用户信息
// cname账号,cpwd密码 ,cexdate过期的天数
var exdate = new Date()
exdate.setTime(exdate.getTime() + 24 * 60 * 60 * 1000 * cexdate) // 保存的天数
document.cookie = `account@${account}==${pwd}@;path=/;expires=` + exdate.toUTCString()
},
getCookie () { // 获取所有用户
const list = []
var userList = document.cookie.match(/account@(.+?)@/g)
for (var i = 0; i < userList.length; i++) {
var c = userList[i].trim().split( @ )
const tempArr = c[1].split( == )
const temp = {}
temp.value = tempArr[0]
temp.password = tempArr[1]
list.push(temp)
}
return list
},
clearCookie () {
this.setCookie( , , -1) // 清除cookie
},
© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END
















暂无评论内容