From 8d9816879fbc838e4a8b54001673c487a3d3a36a Mon Sep 17 00:00:00 2001 From: Madeline <46743919+MaddyUnderStars@users.noreply.github.com> Date: Wed, 20 Jul 2022 14:35:32 +1000 Subject: Hcaptcha backend --- api/src/util/utility/captcha.ts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 api/src/util/utility/captcha.ts (limited to 'api/src/util/utility/captcha.ts') diff --git a/api/src/util/utility/captcha.ts b/api/src/util/utility/captcha.ts new file mode 100644 index 00000000..b32bd1c6 --- /dev/null +++ b/api/src/util/utility/captcha.ts @@ -0,0 +1,25 @@ +import { Config } from "@fosscord/util"; +import fetch from "node-fetch"; + +export interface hcaptchaResponse { + success: boolean; + challenge_ts: string; + hostname: string; + credit: boolean; + "error-codes": string[]; + score: number; // enterprise only + score_reason: string[]; // enterprise only +} + +export async function verifyHcaptcha(response: string, ip?: string) { + const { security } = Config.get(); + const { secret, sitekey } = security.captcha; + + const res = await fetch("https://hcaptcha.com/siteverify", { + method: "POST", + body: `response=${response}&secret=${secret}&remoteip=${ip}&sitekey=${sitekey}`, + }) + + const json = await res.json() as hcaptchaResponse; + return json; +} \ No newline at end of file -- cgit 1.5.1