在我练习的时候,需要token验证自己整理了一个思路
1.首先在点击登录(触发事件)的时候
let obj = {
name:xxx.token,
//获取存储时的时间
time:new Date().getTime()
}
localStorage.setItem('token',JSON.stringify(obj))
2.在router的index.js
//设置你想储存的时间 因为获取的时间是以毫秒计算 所以的们要单位转换 1s=1000ms
let time=xxxx
router.beforeEach((to, from, next) => {
//获取本地的储存 要把数据转化成js
let toke = JSON.parse(localStorage.getItem('token'))
if (toke) {
//获取当前时间
let newtime=new Date().getTime()
//当前的时间-存储时的时间=存储了多长时间,如果大于就是超时,小于就不超时
if(newtime-toke.time>time){
//大于就删除本次存储
localStorage.removeItem('token')
//让他返会首页(登录页)
next('/')
}else{
next()
}
}
3.接下来就是我自己写的
login.vue页面
getdata(date).then(res => {
console.log(res);
if (res.data != null) {
setTimeout(() => {
this.$router.push({ path: "/index" });
this.$router.push({ path: "/usergl" });
}, 1500);
let token = {
time: new Date().getTime(),
name: res.data.token
};
localStorage.setItem("token",JSON.stringify(token));
this.$message({
message: "登陆成功",
type: "success"
});
} else {
this.$message.error("用户名或者密码错误");
}
});
router/index.js
let time=24 * 60 * 60 * 1000
router.beforeEach((to, from, next) => {
let toke = JSON.parse(localStorage.getItem('token'))
if (toke) {
let deltime=new Date().getTime()
if(deltime-toke.time>time){
alert('登录已经过期,请重新登录')
localStorage.removeItem('token')
next('/')
}else{
next()
}
} else {
if (to.path=="/") {
next()
} else {
alert('请先登录,再访问其他页面')
next('/')
}
}
})
————勿喷————
本文转载自: https://blog.csdn.net/qq_35191845/article/details/122140619
版权归原作者 长风戏子 所有, 如有侵权,请联系我们删除。
版权归原作者 长风戏子 所有, 如有侵权,请联系我们删除。