如何检查JWT令牌有效期

时间:2018-04-01 10:28:49

标签: javascript laravel vue.js lumen

我一直在关注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中验证,不是吗?

1 个答案:

答案 0 :(得分:1)

无法在本地检查令牌。您必须了解,您不能信任来自用户计算机的任何信息。

您需要做的是在每次路由验证之前都发送一个ajax请求,以确保您的令牌仍然有效。