Skip to content

Commit f624e88

Browse files
feat: allow disabling session auto-loading
See #309
1 parent b25dae7 commit f624e88

File tree

3 files changed

+16
-8
lines changed

3 files changed

+16
-8
lines changed

src/module.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ declare module 'nuxt/schema' {
5050
* Session configuration
5151
*/
5252
session: SessionConfig
53+
disableAuthAutoLoad?: boolean
5354
}
5455
}
5556

@@ -495,5 +496,10 @@ export default defineNuxtModule<ModuleOptions>({
495496
tokenURL: '',
496497
userURL: '',
497498
})
499+
500+
// Publicly expose disableAuthAutoLoad if needed
501+
if (runtimeConfig.disableAuthAutoLoad && runtimeConfig.public.disableAuthAutoLoad === undefined) {
502+
runtimeConfig.public.disableAuthAutoLoad = runtimeConfig.disableAuthAutoLoad
503+
}
498504
},
499505
})

src/runtime/app/plugins/session.client.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,16 @@ import {} from 'nuxt/app'
33
import { defineNuxtPlugin, useUserSession, useError } from '#imports'
44

55
export default defineNuxtPlugin(async (nuxtApp) => {
6-
if (!nuxtApp.payload.serverRendered) {
7-
await useUserSession().fetch()
8-
}
9-
else if (Boolean(nuxtApp.payload.prerenderedAt) || Boolean(nuxtApp.payload.isCached)) {
10-
// To avoid hydration mismatch
11-
nuxtApp.hook('app:mounted', async () => {
6+
if (!nuxtApp.$config.public.disableAuthAutoLoad) {
7+
if (!nuxtApp.payload.serverRendered) {
128
await useUserSession().fetch()
13-
})
9+
}
10+
else if (Boolean(nuxtApp.payload.prerenderedAt) || Boolean(nuxtApp.payload.isCached)) {
11+
// To avoid hydration mismatch
12+
nuxtApp.hook('app:mounted', async () => {
13+
await useUserSession().fetch()
14+
})
15+
}
1416
}
1517

1618
if (localStorage.getItem('temp-nuxt-auth-utils-popup')) {

src/runtime/app/plugins/session.server.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export default defineNuxtPlugin({
88
async setup(nuxtApp) {
99
// Flag if request is cached
1010
nuxtApp.payload.isCached = Boolean(useRequestEvent()?.context.cache)
11-
if (nuxtApp.payload.serverRendered && !nuxtApp.payload.prerenderedAt && !nuxtApp.payload.isCached) {
11+
if (nuxtApp.payload.serverRendered && !nuxtApp.payload.prerenderedAt && !nuxtApp.payload.isCached && !nuxtApp.$config.disableAuthAutoLoad) {
1212
await useUserSession().fetch()
1313
}
1414
},

0 commit comments

Comments
 (0)