首頁  >  問答  >  主體

解決Vue Router無限重定向錯誤的方法

<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粉403821740P粉403821740442 天前918

全部回覆(1)我來回復

  • P粉529245050

    P粉5292450502023-08-26 11:39:41

    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();
        }
      }
    });
    

    回覆
    0
  • 取消回覆