aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/routes/(app)/[username]/(profile)/+page.ts8
-rw-r--r--src/routes/(static)/login/+page.svelte4
-rw-r--r--src/routes/(static)/register/+page.server.ts12
-rw-r--r--src/routes/(static)/register/+page.svelte5
4 files changed, 24 insertions, 5 deletions
diff --git a/src/routes/(app)/[username]/(profile)/+page.ts b/src/routes/(app)/[username]/(profile)/+page.ts
new file mode 100644
index 00000000..e90d1aaf
--- /dev/null
+++ b/src/routes/(app)/[username]/(profile)/+page.ts
@@ -0,0 +1,8 @@
+import { signer } from "$lib/store";
+import cookies from "js-cookie";
+
+export const ssr = false;
+export async function load() {
+ const sk = cookies.get("sk");
+ if (sk) signer.set({ method: "nsec", params: { sk }, ready: true });
+}
diff --git a/src/routes/(static)/login/+page.svelte b/src/routes/(static)/login/+page.svelte
index e4dcbf15..e9c238c4 100644
--- a/src/routes/(static)/login/+page.svelte
+++ b/src/routes/(static)/login/+page.svelte
@@ -17,7 +17,7 @@
let { data, form } = $props();
- page.subscribe(async () => {
+ onMount(() => {
if (browser) {
setTimeout(() => {
password.set(undefined);
@@ -25,7 +25,7 @@
signer.set(undefined);
localStorage.clear();
sessionStorage.clear();
- }, 500);
+ }, 50);
}
});
diff --git a/src/routes/(static)/register/+page.server.ts b/src/routes/(static)/register/+page.server.ts
index 2e5c5f19..2c2807bd 100644
--- a/src/routes/(static)/register/+page.server.ts
+++ b/src/routes/(static)/register/+page.server.ts
@@ -22,8 +22,9 @@ export const actions = {
if (loginRedirect === "undefined") loginRedirect = undefined;
+ let sk;
try {
- await post("/register", { user }, { "cf-connecting-ip": ip });
+ ({ sk } = await post("/register", { user }, { "cf-connecting-ip": ip }));
} catch (e) {
({ message: error } = e as Error);
}
@@ -36,6 +37,15 @@ export const actions = {
error ||= message;
}
+ const expires = new Date();
+ expires.setSeconds(expires.getSeconds() + 21000000);
+ cookies.set("sk", sk, {
+ path: "/",
+ expires,
+ httpOnly: false,
+ sameSite: "lax",
+ });
+
if (error) return fail(400, { error });
redirect(303, loginRedirect || `/${user.username}`);
},
diff --git a/src/routes/(static)/register/+page.svelte b/src/routes/(static)/register/+page.svelte
index 468b322a..45c7c06f 100644
--- a/src/routes/(static)/register/+page.svelte
+++ b/src/routes/(static)/register/+page.svelte
@@ -1,4 +1,5 @@
<script>
+ import { onMount } from "svelte";
import { browser } from "$app/environment";
import punks from "$lib/punks";
import { upload } from "$lib/upload";
@@ -28,7 +29,7 @@
let { form, data } = $props();
let { challenge } = $derived(data);
- page.subscribe(async () => {
+ onMount(() => {
if (browser) {
setTimeout(() => {
password.set(undefined);
@@ -36,7 +37,7 @@
signer.set(undefined);
localStorage.clear();
sessionStorage.clear();
- }, 500);
+ }, 50);
}
});