diff --git a/src/app.d.ts b/src/app.d.ts
index da08e6d..d04da19 100644
--- a/src/app.d.ts
+++ b/src/app.d.ts
@@ -3,7 +3,19 @@
declare global {
namespace App {
// interface Error {}
- // interface Locals {}
+ interface Locals {
+ user: {
+ id: string;
+ username: string;
+ email: string;
+ avatar_url: string;
+ is_active: boolean;
+ is_admin: boolean;
+ last_login: string;
+ created_at: string;
+ modified_at: string;
+ };
+ }
// interface PageData {}
// interface PageState {}
// interface Platform {}
diff --git a/src/hooks.server.ts b/src/hooks.server.ts
new file mode 100644
index 0000000..ad0ee34
--- /dev/null
+++ b/src/hooks.server.ts
@@ -0,0 +1,18 @@
+import { authenticateUser } from '$lib/server/auth';
+import type { Handle } from '@sveltejs/kit';
+import { redirect } from '@sveltejs/kit';
+
+export const handle: Handle = async ({ event, resolve }) => {
+ if (event.url.pathname.startsWith('/gameroom')) {
+ const current_user = await authenticateUser(event);
+ if (!current_user) {
+ throw redirect(302, '/login');
+ }
+ event.locals.user = current_user;
+
+
+ }
+
+ const response = await resolve(event);
+ return response;
+};
\ No newline at end of file
diff --git a/src/lib/components/Header.svelte b/src/lib/components/Header.svelte
index 1730cc0..3f8736e 100644
--- a/src/lib/components/Header.svelte
+++ b/src/lib/components/Header.svelte
@@ -1,8 +1,13 @@
-
Paska Joululeffa 2024
- Sisään
-
+ {#if user}
+ {user.username}
+ Ulos
+ {:else}
+ Sisään
+ {/if}