【发布时间】:2020-10-21 21:11:46
【问题描述】:
我有一个在 Vue 路由器中运行 'beforeEnter' 的函数来验证用户是否已通过身份验证,否则会触发消息。
它会检查 (jwt) token 是否保存在 localStorage 中 - 如果用户手动注销,这会起作用,因为它会从 localStorage 中删除令牌。但是,当令牌过期时,它仍保留在 localStorage 中,因此函数认为 ((localStorage.token)) 用户已登录。
由于令牌无效,服务器仍会阻止任何请求 - 因此是安全的。
如何在页面加载之前在服务器端的“beforeEnter”中间件中检查令牌的有效性?
我是否需要创建一个端点来检查令牌的有效性并返回结果? (我正在使用 fetch(),但是我看到有人使用 axios 拦截器...)
我不使用 VUEX 毫无价值,而且似乎还有更多详细信息?
function protectedPage(to, from, next) {
if (localStorage.token) {
next();
} else {
Vue.toasted.show("The session has ended. Please login.", {
theme: "toasted-primary",
position: "top-center",
duration: null,
action: {
text: "Login",
onClick: (e, toastObject) => {
next("/");
toastObject.goAway(0);
}
}
});
next("/");
}
}
【问题讨论】:
标签: vue.js vuejs2 vue-router