Skip to content

Next middleware continues processing even after auth middleware's redirect #118

@croro613

Description

@croro613

Environment

  • Operating System: Linux
  • Node Version: v21.4.0
  • Nuxt Version: 3.9.3
  • CLI Version: 3.10.0
  • Nitro Version: 2.8.1
  • Package Manager: npm@10.2.4
  • Builder: -
  • User Config: build, sourcemap, site, spaLoadingTemplate, vite, hooks, ssr, alias, css, devtools, components, modules, auth, gtag, pinia, plugins, app, generate, runtimeConfig, sitemap
  • Runtime Modules: nuxt-gtag@1.1.2, @pinia/nuxt@0.5.1, @nuxt-alt/auth@3.1.0, @nuxtjs/sitemap@5.0.4, @nuxtjs/seo@2.0.0-rc.5, @nuxtjs/google-fonts@3.1.3
  • Build Modules: -

Nuxt Config

auth: {
    rewriteRedirects: false,
    watchLoggedIn: true,
    resetOnResponseError: true,
    redirect: {
      logout: logoutPath,
      login: loginPath,
      home: "/",
      callback: callBackPath,
    },
    stores: {
      cookie: {
        enabled: true,
        prefix: "auth.",
      },
    },
    strategies: {
      local: {
        name: "local",
        scheme: "~/auth/schemes/customLocalScheme",
        token: {
          property: "token",
          global: true,
          required: true,
          type: "Bearer",
        },
        user: {
          property: "data",
        },
        endpoints: {
          login: { url: loginUrl, method: "post" },
          user: { url: userUrl, method: "get" },
        },
      },
    },
  },

Reproduction

https://stackblitz.com/edit/nuxt-starter-4cwdoi?file=pages%2Ftest.vue

Describe the bug

I define multiple middleware (including auth) on a page, as written in the provided link.
Currently, when a user is not authenticated, the auth middleware redirects them to the login page.
However, at the same time, the next middleware is also executed.

I think that it would be better if the next middleware were skipped when redirected by auth.
In fact, if we use navigateTo, the next middleware is skipped.
The Nuxt community also recommends using navigateTo.

However, with PR #79, it seems navigateTo is no longer usable when redirected.
Is there a problem with using this?

Additional context

No response

Logs

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions