From 4912a0dbe7b1df1e884b53544943319f8f0c0ebb Mon Sep 17 00:00:00 2001
From: Ilion Beyst <ilion.beyst@gmail.com>
Date: Thu, 30 Dec 2021 16:34:50 +0100
Subject: barebones authentication

---
 web/pw-server/src/routes/login.svelte | 46 +++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)
 create mode 100644 web/pw-server/src/routes/login.svelte

(limited to 'web/pw-server/src/routes/login.svelte')

diff --git a/web/pw-server/src/routes/login.svelte b/web/pw-server/src/routes/login.svelte
new file mode 100644
index 0000000..197238e
--- /dev/null
+++ b/web/pw-server/src/routes/login.svelte
@@ -0,0 +1,46 @@
+<script lang="ts">
+	import { get_session_token, set_session_token } from '$lib/auth';
+  import { goto } from '$app/navigation';
+
+	let username: string | undefined;
+	let password: string | undefined;
+
+	const onSubmit = () => {
+		fetch('/api/login', {
+			method: 'POST',
+			headers: {
+				'Content-Type': 'application/json'
+			},
+			body: JSON.stringify({
+				username,
+				password
+			})
+		})
+			.then((response) => {
+        if (!response.ok) {
+          throw Error(response.statusText);
+        }
+        return response.text();
+      })
+			.then((token) => {
+				set_session_token(token);
+        goto("/")
+			});
+	};
+
+  function loggedIn(): boolean {
+    return get_session_token() != null
+  }
+</script>
+
+{#if loggedIn()}
+  you are logged in 
+{/if}
+
+<form on:submit|preventDefault={onSubmit}>
+	<label for="username">Username</label>
+	<input name="username" bind:value={username} />
+	<label for="password">Password</label>
+	<input type="password" name="password" bind:value={password} />
+	<button type="submit">Log in</button>
+</form>
-- 
cgit v1.2.3

