From d5cd459bf1b647eba6e83a3df7679db5e519edbe Mon Sep 17 00:00:00 2001 From: Baptiste Arnaud Date: Fri, 16 Jan 2026 16:37:34 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Attempt=20to=20fix=20email=20exp?= =?UTF-8?q?iration=20bug=20on=20Outlook=20by=20bumping=20max=20age?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/auth/src/helpers/createEmailMagicLink.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/auth/src/helpers/createEmailMagicLink.ts b/packages/auth/src/helpers/createEmailMagicLink.ts index 5f6cdca02..81f54b790 100644 --- a/packages/auth/src/helpers/createEmailMagicLink.ts +++ b/packages/auth/src/helpers/createEmailMagicLink.ts @@ -3,12 +3,20 @@ export const createEmailMagicLink = ( email: string, redirectPath?: string, ) => { + const normalizedEmail = normalizeEmailIdentifier(email); const url = new URL(`${window.location.origin}/api/auth/callback/nodemailer`); url.searchParams.set("token", token); - url.searchParams.set("email", email); + url.searchParams.set("email", normalizedEmail); url.searchParams.set( "callbackUrl", `${window.location.origin}${redirectPath ?? "/typebots"}`, ); return url.toString(); }; + +const normalizeEmailIdentifier = (identifier: string) => { + const trimmed = identifier.trim().toLowerCase(); + const [local, domain] = trimmed.split("@"); + if (!domain) return trimmed; + return `${local}@${domain.split(",")[0]}`; +};