我一直在关注this教程,用流明和vuejs进行身份验证。我正在使用this库(tymon / jwt-auth)。
一切都很好。我的API处理我的数据的所有内容,并为我的前端框架提供令牌。我可以登录/注销,我需要一个valide令牌来发送API请求。
在Vuex中有这个常数:
const state = {
isLogged: !!localStorage.getItem('token')
}
检查是否有令牌,如果没有,则将其设置为false并重定向到登录页面。但是如果我手动为我的cookie添加一个令牌,我可以从我的vue-router访问每个路由并查看静态数据。当然,没有来自API的数据可用,但是如果未验证令牌(用户未被记录),我不希望任何访问此路由的权限。
我该如何处理?我是否必须每次都使用ajax电话进行检查?我实际上是在用这个:
router.beforeEach((to, from, next) => {
const auth = store.state.auth;
if (to.name == "logout" || to.name == "login") {
next();
} else {
if (store.state.isLogged) {
next();
} else {
next('/');
}
}
})
我认为唯一的解决方案是Ajax调用,因为我们无法在vuejs中验证,不是吗?
答案 0 :(得分:1)
无法在本地检查令牌。您必须了解,您不能信任来自用户计算机的任何信息。
您需要做的是在每次路由验证之前都发送一个ajax请求,以确保您的令牌仍然有效。