Elimina il falso successo del form contatti e mostra conferma invio. (#25)
Rimuove l honeypot autofillato, rifiuta mode non-live in produzione e TO su pro@nexstudio.ai. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@ -129,14 +129,7 @@ export const POST: APIRoute = async ({ request, url }) => {
|
||||
const turnstileSecret = readEnv('CONTACT_TURNSTILE_SECRET_KEY', runtimeEnv);
|
||||
|
||||
const form = await request.formData();
|
||||
if (required(form.get('_gotcha'))) {
|
||||
const redirectTarget =
|
||||
sanitizeRedirect(required(form.get('_next')), url) ||
|
||||
sanitizeRedirect(request.headers.get('referer') ?? '/', url) ||
|
||||
new URL('/#contatti', url).toString();
|
||||
return succeed(request, redirectTarget);
|
||||
}
|
||||
|
||||
// Honeypot rimosso dal form (Turnstile basta). Se un client legacy lo manda, ignoralo.
|
||||
const redirectTarget =
|
||||
sanitizeRedirect(required(form.get('_next')), url) ||
|
||||
sanitizeRedirect(readEnv('PUBLIC_CONTACT_FORM_SUCCESS_REDIRECT', runtimeEnv), url) ||
|
||||
@ -239,6 +232,14 @@ export const POST: APIRoute = async ({ request, url }) => {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
const isProdHost =
|
||||
url.hostname === 'nexstudio.ai' ||
|
||||
url.hostname.endsWith('.nexstudio.ai') ||
|
||||
url.hostname.endsWith('.workers.dev');
|
||||
console.warn('[contact] CONTACT_FORM_MODE is not live', { mode, host: url.hostname });
|
||||
if (isProdHost) {
|
||||
return fail(request, USER_SEND_ERROR, 503);
|
||||
}
|
||||
console.info('[contact:dev] Contact payload received', {
|
||||
name,
|
||||
company,
|
||||
|
||||
Reference in New Issue
Block a user