diff --git a/src/app.d.ts b/src/app.d.ts index da08e6d..3a28554 100644 --- a/src/app.d.ts +++ b/src/app.d.ts @@ -1,3 +1,5 @@ +import { DefaultSession } from '@auth/sveltekit'; + // See https://svelte.dev/docs/kit/types#app.d.ts // for information about these interfaces declare global { @@ -10,4 +12,13 @@ declare global { } } +declare module '@auth/sveltekit' { + interface Session { + user: { + id: string; + email: string; + } & DefaultSession['user']; + } +} + export {}; diff --git a/src/lib/auth.ts b/src/lib/auth.ts index ea7bbfe..95bd9af 100644 --- a/src/lib/auth.ts +++ b/src/lib/auth.ts @@ -1,4 +1,4 @@ -import type { Session, User } from '@auth/sveltekit'; +import type { Session } from '@auth/sveltekit'; import { error } from '@sveltejs/kit'; import { db } from './server/db'; import { users } from './server/db/schema'; @@ -8,21 +8,17 @@ interface Event { auth(): Promise; }; } -interface UserWithId extends User { - id: string; - email: string; -} -export async function ensureAuth(event: Event): Promise { +export async function ensureAuth(event: Event): Promise { const session = await getSession(event); if (!session) error(401, { message: 'Du muesch di zersch iiloge' }); - const user = session?.user; + const user = session.user; if (!user || !user.email || !user.id) { error(401, { message: 'Du muesch di zersch iiloge' }); } - return { ...user, id: user.id, email: user.email }; // weird thingamajig so that ts compiler is happy + return user; } export async function getSession(event: Event) { const session = await event.locals.auth();