+layout.server.ts
1 import { refreshSession } from '$lib/server/oauth2'; 2 import type { PageSession } from '$lib/server/session/model'; 3 import type { LayoutServerLoad } from './$types'; 4 5 interface LayoutData { 6 session: Promise<PageSession | null>; 7 } 8 9 export const load: LayoutServerLoad<LayoutData> = (event): LayoutData => { 10 const clientSession = refreshSession(event.url, event.locals.session).then( 11 (session): PageSession | null => { 12 if (session?.user && session.idToken) { 13 return { 14 expiresAt: session.expiresAt, 15 user: session.user, 16 jwt: session.idToken 17 }; 18 } 19 return null; 20 } 21 ); 22 return { 23 session: clientSession 24 }; 25 };