diff options
| author | Adam Soltys <[email protected]> | 2025-01-10 22:18:08 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2025-01-10 22:18:08 -0800 |
| commit | d1c66a57288261763e40e4bec53823a7eafbee4d (patch) | |
| tree | 152b4de6ad3d3eb48d08781ef6b5a73b5642bc7f /src | |
| parent | 978d287e2f20e218288070583be21ccc5062d639 (diff) | |
| download | coinos-ui-d1c66a57288261763e40e4bec53823a7eafbee4d.tar.gz coinos-ui-d1c66a57288261763e40e4bec53823a7eafbee4d.zip | |
store nsec on registration
Diffstat (limited to 'src')
| -rw-r--r-- | src/routes/(app)/[username]/(profile)/+page.ts | 8 | ||||
| -rw-r--r-- | src/routes/(static)/login/+page.svelte | 4 | ||||
| -rw-r--r-- | src/routes/(static)/register/+page.server.ts | 12 | ||||
| -rw-r--r-- | src/routes/(static)/register/+page.svelte | 5 |
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); } }); |
