diff --git a/src/module.ts b/src/module.ts index 99dbd418..f56aeb98 100644 --- a/src/module.ts +++ b/src/module.ts @@ -50,6 +50,7 @@ declare module 'nuxt/schema' { * Session configuration */ session: SessionConfig + disableAuthAutoLoad?: boolean } } @@ -468,5 +469,10 @@ export default defineNuxtModule({ redirectURL: '', scope: '', }) + + // Publicly expose disableAuthAutoLoad if needed + if (runtimeConfig.disableAuthAutoLoad && runtimeConfig.public.disableAuthAutoLoad === undefined) { + runtimeConfig.public.disableAuthAutoLoad = runtimeConfig.disableAuthAutoLoad + } }, }) diff --git a/src/runtime/app/plugins/session.client.ts b/src/runtime/app/plugins/session.client.ts index f37e5dad..2fc73a41 100644 --- a/src/runtime/app/plugins/session.client.ts +++ b/src/runtime/app/plugins/session.client.ts @@ -1,16 +1,17 @@ // TODO: https://github.com/nuxt/module-builder/issues/141 -import {} from 'nuxt/app' import { defineNuxtPlugin, useUserSession, useError } from '#imports' export default defineNuxtPlugin(async (nuxtApp) => { - if (!nuxtApp.payload.serverRendered) { - await useUserSession().fetch() - } - else if (Boolean(nuxtApp.payload.prerenderedAt) || Boolean(nuxtApp.payload.isCached)) { - // To avoid hydration mismatch - nuxtApp.hook('app:mounted', async () => { + if (!nuxtApp.$config.public.disableAuthAutoLoad) { + if (!nuxtApp.payload.serverRendered) { await useUserSession().fetch() - }) + } + else if (Boolean(nuxtApp.payload.prerenderedAt) || Boolean(nuxtApp.payload.isCached)) { + // To avoid hydration mismatch + nuxtApp.hook('app:mounted', async () => { + await useUserSession().fetch() + }) + } } if (localStorage.getItem('temp-nuxt-auth-utils-popup')) { diff --git a/src/runtime/app/plugins/session.server.ts b/src/runtime/app/plugins/session.server.ts index 5d1795c3..eaff7efd 100644 --- a/src/runtime/app/plugins/session.server.ts +++ b/src/runtime/app/plugins/session.server.ts @@ -1,5 +1,4 @@ // TODO: https://github.com/nuxt/module-builder/issues/141 -import {} from 'nuxt/app' import { defineNuxtPlugin, useRequestEvent, useUserSession } from '#imports' export default defineNuxtPlugin({ @@ -8,7 +7,7 @@ export default defineNuxtPlugin({ async setup(nuxtApp) { // Flag if request is cached nuxtApp.payload.isCached = Boolean(useRequestEvent()?.context.cache) - if (nuxtApp.payload.serverRendered && !nuxtApp.payload.prerenderedAt && !nuxtApp.payload.isCached) { + if (nuxtApp.payload.serverRendered && !nuxtApp.payload.prerenderedAt && !nuxtApp.payload.isCached && !nuxtApp.$config.disableAuthAutoLoad) { await useUserSession().fetch() } },