Vuejs2 在每个路由之前验证访问jwt令牌,如果无效,请在vue cli中注销

Vuejs2 在每个路由之前验证访问jwt令牌,如果无效,请在vue cli中注销,vuejs2,vuex,vue-cli,Vuejs2,Vuex,Vue Cli,我有一些警卫在每个路由之前检查访问令牌,但它不工作,在控制台中,我从令牌验证器得到“拒绝访问!未授权用户”,但它什么也不做。。如果令牌无效或过期,我想注销并销毁令牌并重定向到登录页面。。请参阅下面的代码。我是新来的,我从零开始学习,所以。。欢迎任何解决方案。谢谢大家 路由器.js router.beforeEach((to, from, next) => { const publicPages = [ '/pages/login', '/pages/regist

我有一些警卫在每个路由之前检查访问令牌,但它不工作,在控制台中,我从令牌验证器得到“拒绝访问!未授权用户”,但它什么也不做。。如果令牌无效或过期,我想注销并销毁令牌并重定向到登录页面。。请参阅下面的代码。我是新来的,我从零开始学习,所以。。欢迎任何解决方案。谢谢大家

路由器.js

router.beforeEach((to, from, next) => {
  
  const publicPages = [
    '/pages/login', 
    '/pages/register', 
    '/pages/forgot-password', 
    '/pages/comingsoon', 
    '/pages/error-404', 
    '/pages/error-500', 
    '/pages/not-authorized', 
    '/pages/maintenance', 
    '/callback'
  ]
  const authRequired = !publicPages.includes(to.path)
  const loggedIn = localStorage.getItem('accessToken')

  // trying to access a restricted page + not logged in
  // redirect to login page
  if (authRequired && !loggedIn) {
    next('/pages/login')
  } else {
    next()
  }
})
const guard = function (to, from, next) {
  // check for valid auth token
  axios.get('http://localhost:8081/api/users/checkAuthToken').then(response => {
    console.log(response)
    // Token is valid, so continue
    next()
  }).catch(error => {
    // There was an error so redirect
    
    console.log(error)
    window.location.href = '/pages/login'
     localStorage.removeItem('userInfo')
     localStorage.removeItem('accessToken')
  })
}
checkAuthToken代码:

checktkn: (req, res) => {
   
    let token = localStorage.getItem('accessToken') 
    if (token) {
       
      // Remove Bearer from string
      token = token.slice(7)
      sign.verify(token, 'qwe1234', (err, decoded) => {
        if (err) {
          return res.json({
            success: 0,
            message: 'Invalid Token...'
          })
        } else {
          req.decoded = decoded 
        }
      })
    } else {
      return res.json({
        success: 0,
        message: 'Access Denied! Unauthorized User'
      })
    }
  }

当令牌无效时,尝试使用
res.status(401)
而不是
res.json
,这样,当令牌无效时,后端会以http错误响应,axios调用中的
catch
将有意义。现在axios总是得到200个响应,并且从不输入
捕获
块。事情是,什么时候有效,我不知道;i don’我不知道为什么它说我没有访问权限可能是因为您在
req.decoded=decoded
之后没有响应客户端,请在此处添加
res.json(“有效令牌”)
。。。在每次调用
res.status
res.json
后添加
.end()
res.json(“有效令牌”).end()
仍不工作。。如果你是善良的,你能给我举个代码的例子吗?