login.vue
methods: {
handleLogin () {
nextTick(() => {
axios({
url: 'http://192.168.19.155:8866/user/login',
method: 'post',
params: {
account: this.loginForm.username,
password: this.loginForm.password
}
}).then(res => {
if (res.success) {
Message.success('登录成功')
//存储本地token
let Data = Object.assign({ name: 'token', val: res.success }, { startTime: new Date().getTime() });
localStorage.setItem("token", JSON.stringify(Data));
router.push({ name: "index" })
} else {
Message.error(res.message)
}
})
})
}
}
router.js
const router = new VueRouter({
mode: "hash",
// base: process.env.BASE_URL,
routes
});
// 一小时
let OneHour = 3600000
router.beforeEach((to, from, next) => {
if (to.name=='index') {
//页面是否登录,本地存储中是否有token的数据
let K = localStorage.getItem("token");
try {
K = JSON.parse(K);
} catch (err) {}
if (K) {
let date = new Date().getTime();
// 如果大于就是过期了
if (date - K.startTime > OneHour) {
localStorage.removeItem('token');
next({ name: "login" });
} else {
next();
}
} else {
next({ name: "login" });
}
} else {
next();
}
})
export default router;