aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2025-09-28 14:15:16 -0700
committerAdam Soltys <[email protected]>2025-09-28 14:15:16 -0700
commitb9d37e107a1bc7f9ea70755945eb76d34d3a6457 (patch)
tree5dd6e4e0ab99843f0abea2079da24044053b1db5 /src
parent51401d6bad6fa73500ea8258812ad705b750c93a (diff)
downloadcoinos-ui-b9d37e107a1bc7f9ea70755945eb76d34d3a6457.tar.gz
coinos-ui-b9d37e107a1bc7f9ea70755945eb76d34d3a6457.zip
register captcha
Diffstat (limited to 'src')
-rw-r--r--src/lib/utils.ts2
-rw-r--r--src/routes/(static)/register/+page.server.ts7
2 files changed, 8 insertions, 1 deletions
diff --git a/src/lib/utils.ts b/src/lib/utils.ts
index 28a219e1..ad95f29a 100644
--- a/src/lib/utils.ts
+++ b/src/lib/utils.ts
@@ -488,3 +488,5 @@ export const register = async (user, ip, cookies, loginRedirect) => {
if (error) return svelteFail(400, { error });
redirect(303, loginRedirect || `/${user.username}`);
};
+
+export const captchas = new Set();
diff --git a/src/routes/(static)/register/+page.server.ts b/src/routes/(static)/register/+page.server.ts
index cddd97ea..284c5a61 100644
--- a/src/routes/(static)/register/+page.server.ts
+++ b/src/routes/(static)/register/+page.server.ts
@@ -1,4 +1,5 @@
-import { fd, get, register } from "$lib/utils";
+import { randomUUID } from "crypto";
+import { fd, get, captchas, register } from "$lib/utils";
import { redirect } from "@sveltejs/kit";
export const load = async ({ parent }) => {
@@ -8,6 +9,10 @@ export const load = async ({ parent }) => {
const index = Math.floor(Math.random() * 64) + 1;
const { challenge } = await get("/challenge");
+ const captcha = randomUUID();
+ captchas.add(captcha);
+ setTimeout(() => captchas.delete(captcha), 120000);
+
return { index, challenge };
};