From 26f4aa0c7059c15796bf0b7e456a137cd794761a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Tue, 30 Jul 2024 12:26:52 +0200 Subject: [PATCH] fix: always return 200 for session endpoint (#130) * fix: always return 200 for session endpoint * chore: add test --- src/runtime/server/api/session.get.ts | 9 ++++++--- test/basic.test.ts | 6 ++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/runtime/server/api/session.get.ts b/src/runtime/server/api/session.get.ts index 9fe99e10..04255452 100644 --- a/src/runtime/server/api/session.get.ts +++ b/src/runtime/server/api/session.get.ts @@ -1,10 +1,13 @@ import { eventHandler } from 'h3' -import { requireUserSession, sessionHooks } from '../utils/session' +import { getUserSession, sessionHooks } from '../utils/session' +import type { UserSessionRequired } from '#auth-utils' export default eventHandler(async (event) => { - const session = await requireUserSession(event) + const session = await getUserSession(event) - await sessionHooks.callHookParallel('fetch', session, event) + if (session.user) { + await sessionHooks.callHookParallel('fetch', session as UserSessionRequired, event) + } return session }) diff --git a/test/basic.test.ts b/test/basic.test.ts index 92fa9ed5..d5e7311e 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -20,4 +20,10 @@ describe('ssr', async () => { const html = await $fetch('/') expect(html).toContain('
Nuxt Auth Utils
') }) + + it('returns an empty session', async () => { + // Get response to a server-rendered page with `$fetch`. + const session = await $fetch('/api/_auth/session') + expect(session).toStrictEqual({}) + }) })