提问人:Jay0813 提问时间:8/3/2021 最后编辑:Jay0813 更新时间:8/3/2021 访问量:226
如何在 4 小时后仅使用 LocalStorage 自动注销?
How to automatic logout only using LocalStorage after 4 hours?
问:
我的问题是我不知道在哪里处理自动注销的条件。 我正在使用 localStorage 来保存有关 logged-user 的信息。
在有人登录的那一刻,我将 expiredTime 对象添加到带有用户信息的 localStorage。
expired像这样的时间
if (userEmail.includes(values.email)) {
if (userPassword.includes(values.password)) {
let expiredTime = new Date()
expiredTime.setMinutes(expiredTime.getHours() + 4)
const loggedUser = users.filter((user) => user.email === values.email)
const addTimeToUser = {
logUser: loggedUser,
expired: expiredTime,
}
saveDataToLocalStorage('loggedUser', addTimeToUser)
history.push('/')
} else {
alert('Password is not right.')
}
} else {
alert('Email is not right.')
}
移动到“/”url 后,如果 expiredTime 较早,它将被删除
useEffect(() => {
const data = JSON.parse(localStorage.getItem('loggedUser'))
// console.log(new Date(data.expired))
if (new Date(data.expired) < new Date()) {
localStorage.removeItem('loggedUser')
}
}, [])
但此方法的问题在于,在刷新后会删除 localStorage 的值。有没有办法在不刷新的情况下删除它?
欢迎任何建议。感谢您回答问题。
答: 暂无答案
评论
setTimeout
Is there any way to get rid of it without refreshing it?
validate
expireTime
expireTime
Date