我一直在关注 this使用 lumen 和 vuejs 进行身份验证的教程。我正在使用 this库(tymon/jwt-auth)。
一切正常。我的 API 为我的数据处理所有事情,并为我的前端框架提供一个 token 。我可以登录/注销,我需要一个有效 token 来发送 API 请求。
在Vuex有这个常数:
const state = {
isLogged: !!localStorage.getItem('token')
}
它正在检查是否有 token ,如果没有,将其设置为 false 并重定向到登录页面。但是如果我手动向我的 cookie 添加一个 token ,我可以从我的 vue-router 访问每条路由并查看静态数据。当然,来自 API 的数据将不可用,但如果 token 未验证(用户未登录),我不想访问此路由。
我该如何处理?我是否必须每次都使用 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 中验证,不是吗?
最佳答案
不可能在本地检查您的 token 。你必须明白,你不能相信来自用户计算机的任何东西。
您需要做的是在每个路由之前发送一个 ajax 请求,以检查您的 token 是否仍然有效。
关于javascript - 如何检查 JWT token 有效性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49597105/