diff --git a/src/runtime/server/utils/session.ts b/src/runtime/server/utils/session.ts index f98fc5bc..c6fa9099 100644 --- a/src/runtime/server/utils/session.ts +++ b/src/runtime/server/utils/session.ts @@ -28,7 +28,11 @@ export const sessionHooks = createHooks() * @returns The user session */ export async function getUserSession(event: UseSessionEvent) { - return (await _useSession(event)).data + const session = await _useSession(event) + return { + id: session.id, + ...session.data, + } } /** * Set a user session diff --git a/src/runtime/types/session.ts b/src/runtime/types/session.ts index e301da45..18940cf9 100644 --- a/src/runtime/types/session.ts +++ b/src/runtime/types/session.ts @@ -7,6 +7,10 @@ export interface SecureSessionData { } export interface UserSession { + /** + * Session ID + */ + id: string /** * User session data, available on client and server */ diff --git a/test/basic.test.ts b/test/basic.test.ts index d5e7311e..39380c67 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -24,6 +24,8 @@ describe('ssr', async () => { 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({}) + // Session should be an object with an `id` property + expect(session).toBeInstanceOf(Object) + expect(session).toHaveProperty('id') }) })