Nuxt 3 - 如果defineNuxtRouteMiddleware 中没有可用令牌,则重定向到身份验证屏幕

问题描述 投票:0回答:1

当应用程序默认加载时,它将转到 / 路由,这是受保护的路由,如果没有可用的用户令牌,则应用程序应将页面推送到 /auth。

import { defaultStore } from "@/store/default";

export default defineNuxtRouteMiddleware((to, from) => {
  const router = useRouter();

  let token = defaultStore()?.getUserDetails?.authToken;
  let loginURL = "/auth";

  let isAllowedRoute =
    to.path.startsWith("/ko/auth") ||
    to.path.startsWith("/auth") ||
    to.path.startsWith('/setup') 

  if (isAllowedRoute) return;

  if (!token && to.path !== loginURL) {
    router.push(loginURL);
  }
});

这是我的中间件,现在当网站加载时,我可以看到呈现的 / 页面,并在一秒钟内重定向到 /auth 路由,这看起来有点问题。

nuxt.js nuxtjs3 nuxt-auth
1个回答
0
投票

唯一导致“看起来不舒服”的是

useRouter()
。尝试使用安装了
navigateTo()
useRouter()
助手,这应该可以解决该问题。

文档链接

© www.soinside.com 2019 - 2024. All rights reserved.