From 8a019f58b726b8349232590237ab89dcb639549e Mon Sep 17 00:00:00 2001 From: MuslemRahimi Date: Fri, 21 Jun 2024 13:31:29 +0200 Subject: [PATCH] detect disposable email addresses --- src/routes/register/+page.server.ts | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/routes/register/+page.server.ts b/src/routes/register/+page.server.ts index c0a03328..b5e0ef6e 100644 --- a/src/routes/register/+page.server.ts +++ b/src/routes/register/+page.server.ts @@ -3,28 +3,37 @@ import { registerUserSchema } from '$lib/schemas'; import { validateData } from '$lib/utils'; -async function checkDisposableEmail(email:string) { - -}const url = `https://disposable.debounce.io/?email=${encodeURIComponent(email)}`; +async function checkDisposableEmail(email) { +const url = `https://disposable.debounce.io/?email=${encodeURIComponent(email)}`; const response = await fetch(url, { method: 'GET', headers: { 'Content-Type': 'application/json', }, }); + const output = (await response.json())?.disposable ?? false; + return output +} export const actions = { register: async ({ locals, request }) => { - const { formData, errors } = await validateData(await request.formData(), registerUserSchema); + + const { formData, errors } = await validateData(await request.formData(), registerUserSchema); if (errors) { + console.log(errors.fieldErrors) return fail(400, { data: formData, errors: errors.fieldErrors }); } - console.log(formData) - //await checkDisposableEmail() + const isEmailDisposable = await checkDisposableEmail(formData?.email); + + if(isEmailDisposable === "true") { + error(400, 'Disposable Email Addresses not allowed!'); + } + + //let username = generateUsername(formData.name.split(' ').join('')).toLowerCase(); try {