From d1c66a57288261763e40e4bec53823a7eafbee4d Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Fri, 10 Jan 2025 22:18:08 -0800 Subject: store nsec on registration --- src/routes/(app)/[username]/(profile)/+page.ts | 8 ++++++++ src/routes/(static)/login/+page.svelte | 4 ++-- src/routes/(static)/register/+page.server.ts | 12 +++++++++++- src/routes/(static)/register/+page.svelte | 5 +++-- 4 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 src/routes/(app)/[username]/(profile)/+page.ts (limited to 'src') 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 @@