summary refs log tree commit diff
path: root/src/api/util/utility/captcha.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/util/utility/captcha.ts')
-rw-r--r--src/api/util/utility/captcha.ts60
1 files changed, 30 insertions, 30 deletions
diff --git a/src/api/util/utility/captcha.ts b/src/api/util/utility/captcha.ts

index f6d4d0e1..c4d8c9a3 100644 --- a/src/api/util/utility/captcha.ts +++ b/src/api/util/utility/captcha.ts
@@ -19,46 +19,46 @@ import { Config } from "@spacebar/util"; export interface hcaptchaResponse { - success: boolean; - challenge_ts: string; - hostname: string; - credit: boolean; - "error-codes": string[]; - score: number; // enterprise only - score_reason: string[]; // enterprise only + success: boolean; + challenge_ts: string; + hostname: string; + credit: boolean; + "error-codes": string[]; + score: number; // enterprise only + score_reason: string[]; // enterprise only } export interface recaptchaResponse { - success: boolean; - score: number; // between 0 - 1 - action: string; - challenge_ts: string; - hostname: string; - "error-codes"?: string[]; + success: boolean; + score: number; // between 0 - 1 + action: string; + challenge_ts: string; + hostname: string; + "error-codes"?: string[]; } const verifyEndpoints = { - hcaptcha: "https://hcaptcha.com/siteverify", - recaptcha: "https://www.google.com/recaptcha/api/siteverify", + hcaptcha: "https://hcaptcha.com/siteverify", + recaptcha: "https://www.google.com/recaptcha/api/siteverify", }; export async function verifyCaptcha(response: string, ip?: string) { - const { security } = Config.get(); - const { service, secret, sitekey } = security.captcha; + const { security } = Config.get(); + const { service, secret, sitekey } = security.captcha; - if (!service || !secret || !sitekey) throw new Error("CAPTCHA is not configured correctly. https://docs.spacebar.chat/setup/server/security/captcha/"); + if (!service || !secret || !sitekey) throw new Error("CAPTCHA is not configured correctly. https://docs.spacebar.chat/setup/server/security/captcha/"); - const res = await fetch(verifyEndpoints[service], { - method: "POST", - headers: { - "Content-Type": "application/x-www-form-urlencoded", - }, - body: - `response=${encodeURIComponent(response)}` + - `&secret=${encodeURIComponent(secret)}` + - `&sitekey=${encodeURIComponent(sitekey)}` + - (ip ? `&remoteip=${encodeURIComponent(ip)}` : ""), - }); + const res = await fetch(verifyEndpoints[service], { + method: "POST", + headers: { + "Content-Type": "application/x-www-form-urlencoded", + }, + body: + `response=${encodeURIComponent(response)}` + + `&secret=${encodeURIComponent(secret)}` + + `&sitekey=${encodeURIComponent(sitekey)}` + + (ip ? `&remoteip=${encodeURIComponent(ip)}` : ""), + }); - return (await res.json()) as hcaptchaResponse | recaptchaResponse; + return (await res.json()) as hcaptchaResponse | recaptchaResponse; }