From f9d8e136baae52f582399b55e91980196e5ee173 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Wed, 5 Feb 2025 11:06:17 +0100 Subject: [PATCH] feat(session): add generated session id (#338) --- src/runtime/server/utils/session.ts | 6 +++++- src/runtime/types/session.ts | 4 ++++ test/basic.test.ts | 4 +++- 3 files changed, 12 insertions(+), 2 deletions(-) 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') }) })