Javascript vue路由器在每次之前清除VueJS令牌

Javascript vue路由器在每次之前清除VueJS令牌,javascript,vuejs2,jwt,jhipster,vuex,Javascript,Vuejs2,Jwt,Jhipster,Vuex,我有一个带有Vuetify框架的VueJS应用程序,它连接到Jhipster Java后端 在此帮助下,我使用Vuex存储用户身份验证令牌,将令牌存储在localStorage上 我的问题是,每当我复制正在处理的选项卡时,beforeach函数会触发两次,并在第二次执行时清除令牌,并指向登录页面,如果我关闭选项卡并尝试重新打开它,同样适用 这是用户登录store.js时的代码: 然后我在main.js中的代码检查令牌是否存在: vue路由器中的beforeach功能: 每次登录应用程序时,

我有一个带有Vuetify框架的VueJS应用程序,它连接到Jhipster Java后端

在此帮助下,我使用Vuex存储用户身份验证令牌,将令牌存储在
localStorage

我的问题是,每当我复制正在处理的选项卡时,
beforeach
函数会触发两次,并在第二次执行时清除令牌,并指向登录页面,如果我关闭选项卡并尝试重新打开它,同样适用

这是用户登录
store.js
时的代码:

然后我在
main.js
中的代码检查令牌是否存在:

vue路由器中的
beforeach
功能:

每次登录应用程序时,我都会获得令牌并重定向到仪表板页面:

to: /dashboard user: true auth: true
logged: eyJhbGciOiJ....
但是,当我复制该选项卡或关闭并重新打开该选项卡时:我得到以下信息:

token exists
to: /dashboard user: true auth: true
logged: eyJhbGciOiJIUzUxM...
to: /login user: false auth: false
exception

我注意到每个
之前的
执行了两次。如果在此之后我尝试刷新第一个页面,则会清除令牌并重定向到登录。

Vuex存储数据会被重置如果您打开新选项卡或刷新页面,则不会持续,这就是为什么你应该使用localStorage@Luigi我使用的是LocalStorages问题是每次刷新或打开新选项卡时,vuex存储数据都会被重置,存储值不会在用户强制刷新页面时保持不变,除非您依赖本地存储作为第一个验证源。如果您打开新选项卡或刷新页面,Vuex存储数据将被重置,它不会持续存在,这就是为什么您应该使用localStorage@Luigi我使用的是LocalStorages问题是每次刷新或打开新选项卡时,vuex存储数据都会被重置,不幸的是,除非您依赖本地存储作为第一个验证源,否则在用户强制进行页面刷新时,存储值不会保持不变。
router.beforeEach((to, from, next) => {

  let currentUser = store.getters.isLoggedIn;
  let requiresAuth = to.matched.some(record => record.meta.requiresAuth);

  console.log("to: "+to.path+" user: "+currentUser+ " auth: "+requiresAuth);

  if (requiresAuth && currentUser){
    console.log("logged: "+store.state.token);
    next();
  }
  else if (requiresAuth && !currentUser){
    console.log("not logged: "+store.state.token);
    next('/login');
  }
  else if (!requiresAuth && currentUser){
    console.log("rediect: "+store.state.token);
        next('/dashboard');
  }
    else{
    console.log("exception")
    next();
    } 
})
to: /dashboard user: true auth: true
logged: eyJhbGciOiJ....
token exists
to: /dashboard user: true auth: true
logged: eyJhbGciOiJIUzUxM...
to: /login user: false auth: false
exception