Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 错误:从“开始”时重定向/页面/登录名“;至/仪表板“;通过导航装置_Vue.js_Vue Router_Vue Cli - Fatal编程技术网

Vue.js 错误:从“开始”时重定向/页面/登录名“;至/仪表板“;通过导航装置

Vue.js 错误:从“开始”时重定向/页面/登录名“;至/仪表板“;通过导航装置,vue.js,vue-router,vue-cli,Vue.js,Vue Router,Vue Cli,伙计们,我不知道为什么我尝试登录时会出现此错误,登录后出现控制台错误: 错误:从“/页面/登录”转到“/仪表板”时重定向 通过导航卫士 我尝试在验证完成后点击login将我重定向到/dashboard页面,但点击login时没有任何重定向,如果再次点击login按钮,则在dashboard页面上进行重定向。有什么解决办法吗?谢谢 loginJWT ({ commit }, payload) { return new Promise((resolve, reject) => {

伙计们,我不知道为什么我尝试登录时会出现此错误,登录后出现控制台错误:

错误:从“/页面/登录”转到“/仪表板”时重定向 通过导航卫士

我尝试在验证完成后点击login将我重定向到/dashboard页面,但点击login时没有任何重定向,如果再次点击login按钮,则在dashboard页面上进行重定向。有什么解决办法吗?谢谢

loginJWT ({ commit }, payload) {

    return new Promise((resolve, reject) => {
      jwt.login(payload.email, payload.password)
        .then(response => {
          console.log(response.data)
          // If there's user data in response
          if (response.data.userDetails) {
            // Navigate User to homepage
            router.push(router.currentRoute.query.to || '/') // <- Here is the redirect after login

            // Set accessToken
            localStorage.setItem('accessToken', response.data.accessToken)

            // Update user details
            commit('UPDATE_USER_INFO', response.data.userDetails, {root: true})

            // Set bearer token in axios
            commit('SET_BEARER', response.data.accessToken)

            resolve(response)
          } else {
            reject({message: 'Wrong Email or Password'})
          }

        })
        .catch(error => { reject(error) })
    })
  }
以及在每个路由之后验证令牌的保护代码:

const guard = function (to, from, next) {
  // check for valid auth token
  const token = localStorage.getItem('accessToken')
  axios.post('http://localhost:8081/api/users/checkAuthToken', {tokn: token})
    .then(function (response) {
      if (response.status === 200) {
        next()
      }  
    }).catch(function (error) {
      if (error.response && error.response.status === 401) {
        alert('access neautorizat')
        next('/pages/login')
        localStorage.removeItem('userInfo')
        localStorage.removeItem('accessToken')
      } 
    })
}
在每个代码之前:

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')

  if (authRequired && !loggedIn) {
    return next('/pages/login')
  }
  return next()
})

第一次设置accessToken,最后一次将用户导航到主页

这就是问题所在,我必须将重定向放在token访问之后,谢谢
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')

  if (authRequired && !loggedIn) {
    return next('/pages/login')
  }
  return next()
})