/ src / routes / +layout.server.ts
+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  };