mirror of
https://github.com/jcreek/SvelteKitSaasBoilerplate.git
synced 2026-07-13 02:53:50 +00:00
feat(#79): Add rate limiting to contact page form
This commit is contained in:
@@ -3,9 +3,17 @@ import { fail } from '@sveltejs/kit';
|
||||
import { sendEmail } from '$lib/utils/brevo/email';
|
||||
import { VITE_CONTACT_EMAIL } from '$env/static/private';
|
||||
import logger from '$lib/utils/logger/logger';
|
||||
import { isRateLimited } from '$lib/utils/rateLimiter';
|
||||
|
||||
export const actions: Actions = {
|
||||
default: async ({ request }) => {
|
||||
const ip =
|
||||
request.headers.get('x-forwarded-for') ?? request.headers.get('remote-addr') ?? 'unknown';
|
||||
|
||||
if (isRateLimited(ip)) {
|
||||
return fail(429, { error: 'Too many requests. Please try again later.' });
|
||||
}
|
||||
|
||||
const formData = await request.formData();
|
||||
const name = formData.get('name') as string;
|
||||
const email = formData.get('email') as string;
|
||||
|
||||
Reference in New Issue
Block a user