From ca00564216bb6850927d1771e1027a8f5a6d5a23 Mon Sep 17 00:00:00 2001 From: Chris Bongers Date: Tue, 26 May 2026 11:38:00 +0200 Subject: [PATCH] fix: ensure only verified github emails --- packages/shared/src/components/auth/AuthOptionsInner.tsx | 9 +++++++-- packages/shared/src/components/auth/socialAuth.ts | 2 ++ packages/shared/src/lib/labels.ts | 2 ++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/shared/src/components/auth/AuthOptionsInner.tsx b/packages/shared/src/components/auth/AuthOptionsInner.tsx index 6c18a2f66fe..825d36e355c 100644 --- a/packages/shared/src/components/auth/AuthOptionsInner.tsx +++ b/packages/shared/src/components/auth/AuthOptionsInner.tsx @@ -23,6 +23,7 @@ import { } from '../../lib/betterAuth'; import { getSocialAuthCallbackError, + GITHUB_EMAIL_NOT_VERIFIED_ERROR, hasSocialAuthBootUser, refetchSocialAuthBoot, SOCIAL_AUTH_RETRY_MESSAGE, @@ -393,6 +394,10 @@ function AuthOptionsInner({ const callbackError = getSocialAuthCallbackError(e?.data); const callbackData = typeof e?.data === 'object' ? JSON.stringify(e.data) : undefined; + const socialErrorMessage = + callbackError === GITHUB_EMAIL_NOT_VERIFIED_ERROR + ? labels.auth.error.githubEmailNotVerified + : SOCIAL_AUTH_RETRY_MESSAGE; let boot; try { @@ -414,7 +419,7 @@ function AuthOptionsInner({ }), }); if (!authFlowSucceededRef.current) { - displayToast(SOCIAL_AUTH_RETRY_MESSAGE); + displayToast(socialErrorMessage); } return; } @@ -436,7 +441,7 @@ function AuthOptionsInner({ }), }); if (!authFlowSucceededRef.current) { - displayToast(SOCIAL_AUTH_RETRY_MESSAGE); + displayToast(socialErrorMessage); } return; } diff --git a/packages/shared/src/components/auth/socialAuth.ts b/packages/shared/src/components/auth/socialAuth.ts index c3d24fc0105..c06673a5e32 100644 --- a/packages/shared/src/components/auth/socialAuth.ts +++ b/packages/shared/src/components/auth/socialAuth.ts @@ -3,6 +3,8 @@ import type { Boot } from '../../lib/boot'; export const SOCIAL_AUTH_RETRY_MESSAGE = "We couldn't complete your social sign-in. Please try again."; +export const GITHUB_EMAIL_NOT_VERIFIED_ERROR = 'github_email_not_verified'; + const SOCIAL_AUTH_BOOT_RETRY_DELAYS_MS = [0, 250, 750] as const; type BootUser = Partial['user']; diff --git a/packages/shared/src/lib/labels.ts b/packages/shared/src/lib/labels.ts index 232fba5891e..93323170f6d 100644 --- a/packages/shared/src/lib/labels.ts +++ b/packages/shared/src/lib/labels.ts @@ -26,6 +26,8 @@ export const labels = { '❌ We ran into an unexpected error on our end. Please try again.', existingEmail: 'That email is linked to a different sign-in method. Please try another provider.', + githubEmailNotVerified: + 'Your GitHub email address is not verified. Please verify it on GitHub and try again.', }, }, referral: {