diff --git a/src/app/api/newsletter/route.js b/src/app/api/newsletter/route.js index b8a3d24c..b12bd78c 100644 --- a/src/app/api/newsletter/route.js +++ b/src/app/api/newsletter/route.js @@ -2,7 +2,7 @@ import { NextResponse } from "next/server"; import mailchimp from "@mailchimp/mailchimp_marketing"; // Validate required environment variables -const requiredEnvVars = ["MAILCHIMP_API_KEY", "MAILCHIMP_LIST_ID", "MAILCHIMP_SERVER_PREFIX"]; +const requiredEnvVars = ["MAILCHIMP_API_KEY", "MAILCHIMP_LIST_ID", "MAILCHIMP_SERVER_PREFIX", "RECAPTCHA_SECRET_KEY"]; for (const envVar of requiredEnvVars) { if (!process.env[envVar]) { console.error(`Missing required environment variable: ${envVar}`); @@ -29,6 +29,11 @@ function isValidEmail(email) { } async function verifyRecaptcha(token) { + if (!process.env.RECAPTCHA_SECRET_KEY) { + console.error("Missing RECAPTCHA_SECRET_KEY"); + return false; + } + try { const response = await fetch("https://www.google.com/recaptcha/api/siteverify", { method: "POST", @@ -39,6 +44,11 @@ async function verifyRecaptcha(token) { }); const data = await response.json(); + + if (!data.success) { + console.error("reCAPTCHA verification failed:", data["error-codes"]); + } + return data.success; } catch (error) { console.error("reCAPTCHA verification failed:", error); diff --git a/src/components/Newsletter/Newsletter.js b/src/components/Newsletter/Newsletter.js index 622a4d9c..7102bd50 100644 --- a/src/components/Newsletter/Newsletter.js +++ b/src/components/Newsletter/Newsletter.js @@ -14,7 +14,7 @@ const Newsletter = () => { const [isFocused, setIsFocused] = useState(false); const reCaptchaRef = useRef(null); - const siteKey = process.env.NEXT_PUBLIC_RECAPTCHA_SITE_KEY; + const siteKey = process.env.RECAPTCHA_SITE_KEY; const handleChange = (e) => { setEmail(e.target.value); @@ -34,6 +34,8 @@ const Newsletter = () => { const handleSubmit = async (e) => { e.preventDefault(); + console.log("Submitting with token:", token); + if (isSubmitting) return; if (!email) { setStatus("Error");