Skip to content

Commit

Permalink
fix: Do not block the login page in globalMiddleware (#543)
Browse files Browse the repository at this point in the history
  • Loading branch information
zoey-kaiser authored Oct 17, 2023
1 parent d944692 commit 2f35849
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 2 deletions.
2 changes: 1 addition & 1 deletion docs/content/v0.6/2.configuration/2.nuxt-config.md
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ type ProviderLocal = {
*/
pages?: {
/**
* Path of the login-page that the user should be redirected to, when they try to access a protected page without being logged in.
* Path of the login-page that the user should be redirected to, when they try to access a protected page without being logged in. This page will also not be blocked by the global middleware.
*
* @default '/login'
*/
Expand Down
2 changes: 1 addition & 1 deletion docs/content/v0.6/3.application-side/4.protecting-pages.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export default defineNuxtConfig({
})
```

Now *all pages* will require sign-in. Learn how to add excepted pages [below](/nuxt-auth/v0.6/application-side/protecting-pages#disabling-the-global-middleware-locally)
Now *all pages*, aside from the login pages will require sign-in. Learn how to add excepted pages [below](/nuxt-auth/v0.6/application-side/protecting-pages#disabling-the-global-middleware-locally)

To enable page-local protection (2), add the following `definePageMeta` directive to a page:
```vue
Expand Down
8 changes: 8 additions & 0 deletions src/runtime/middleware/auth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,14 @@ export default defineNuxtRouteMiddleware((to) => {
return
}

// We do not want to block the login page when the local provider is used
if (authConfig.provider?.type === 'local') {
const loginRoute: string | null = authConfig.provider?.pages?.login
if (loginRoute && loginRoute === to.path) {
return
}
}

/**
* We do not want to enforce protection on `404` pages (unless the user opts out of it by setting `allow404WithoutAuth: false`).
*
Expand Down

0 comments on commit 2f35849

Please sign in to comment.