You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nuxt路由守卫出现无限重定向问题,如何修改中间件代码?

解决Nuxt路由中间件无限重定向问题

你遇到的无限重定向问题,核心原因是中间件没有判断当前目标页面,导致不管用户访问哪个页面,都会强制触发跳转,进而形成循环——比如当authentication为true时,用户已经在/admin页面,中间件还是会再次跳转到/admin,反复触发逻辑。

修改后的代码如下:

import nuxtStorage from 'nuxt-storage';

export default defineNuxtRouteMiddleware((to) => {
  const authentication = nuxtStorage.localStorage.getData('authentication');

  // 已认证但当前不是/admin页面时,跳转到后台
  if (authentication === true && to.path !== '/admin') {
    return navigateTo('/admin');
  }

  // 未认证但当前不是首页时,跳转到首页
  if (authentication !== true && to.path !== '/') {
    return navigateTo('/');
  }

  // 符合页面访问条件,直接放行
  return;
});

修改说明:

  • 增加对目标页面to.path的判断:只有当用户不在目标页面时才执行跳转,彻底避免重复触发中间件导致的循环
  • 移除无用的from和next参数:Nuxt 3的路由中间件推荐直接返回navigateTo做跳转,或者直接return放行路由,不需要调用next
  • 明确两种场景的跳转逻辑,同时保留路由放行分支,让符合条件的页面正常加载

内容的提问来源于stack exchange,提问作者safwan paloli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 03:14:53