import { getRequestIP } from "h3"; import { createCaptchaChallenge } from "#server/service/captcha/challenge"; import { assertUnderRateLimit } from "#server/utils/simple-rate-limit"; export default defineWrappedResponseHandler(async (event) => { setResponseHeader(event, "cache-control", "no-store"); const ip = getRequestIP(event, { xForwardedFor: true }) ?? "unknown"; assertUnderRateLimit(`auth-captcha:${ip}`, 60, 60_000); const { captchaId, imageSvg } = createCaptchaChallenge(); return R.success({ captchaId, imageSvg }); });