解決Vue Router無限重定向錯誤的方法
P粉403821740
P粉403821740 2023-08-25 16:12:12
0
1
932
<p>在router.beforeEach中,我想要檢查存儲中是否已經存在sessionToken,如果不存在則重定向到登錄頁面以獲取它,但是我遇到了以下錯誤:</p> <pre class="brush:php;toolbar:false;">從「/」跳到「/login」時,導覽守衛偵測到無限重定向。為了避免堆疊溢出,中止導航。如果不修復,這將在生產環境中出現問題。 </pre> <p>我的router.js中的程式碼:</p> <pre class="lang-js prettyprint-override"><code>router.beforeEach((to, from, next) => { if(ENV == 'development') { let sessionStorage = storage.sessionStorageGet('_sessionToken') if (sessionStorage === null) next({ name: 'Login' }) else next() } }) </code></pre>
P粉403821740
P粉403821740

全部回覆(1)
P粉529245050
const routes = [
  {
    path: '/login',
    name: 'Login',
    component: () => import('../views/login'),
    meta: {
      requiresAuth: false
    }
  },
  {
    path: '/private',
    ... private route config,
    meta: {
      requiresAuth: true
    }
  }
];

router.beforeEach(async (to, from, next) => {
  if (ENV == 'development') {
    
    if (to.matched.some(record => record.meta.requiresAuth)) {
      const sessionStorage = storage.sessionStorageGet('_sessionToken')
  
      if (sessionStorage) {
        next();
      } else {
        router.push({ name: 'Login' });
      }
    } else {
      next();
    }
  }
});
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板