From 4390f64b8a63e2c33923c46fb1e7a421d4e67d21 Mon Sep 17 00:00:00 2001 From: giancarlo Date: Sun, 28 Apr 2024 20:37:32 +0700 Subject: [PATCH] Add handling for invite tokens in authentication confirmation Modified the GET function in the authentication confirmation route to handle invite tokens. If an invite token is detected, the user will now be redirected to the join team page rather than the default next URL. This ensures users attempting to join a team land on the correct page. --- apps/web/app/auth/confirm/route.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/apps/web/app/auth/confirm/route.ts b/apps/web/app/auth/confirm/route.ts index 9f22193cf..ea8a13f35 100644 --- a/apps/web/app/auth/confirm/route.ts +++ b/apps/web/app/auth/confirm/route.ts @@ -10,13 +10,27 @@ const defaultNextUrl = pathsConfig.app.home; export async function GET(request: NextRequest) { const { searchParams } = new URL(request.url); + const token_hash = searchParams.get('token_hash'); const type = searchParams.get('type') as EmailOtpType | null; const next = searchParams.get('next') ?? defaultNextUrl; + const callbackParam = searchParams.get('callback'); + const callbackUrl = callbackParam ? new URL(callbackParam) : null; + const inviteToken = callbackUrl?.searchParams.get('invite_token'); const redirectTo = request.nextUrl.clone(); redirectTo.pathname = next; + // if we have an invite token, we append it to the redirect url + if (inviteToken) { + // if we have an invite token, we redirect to the join team page + // instead of the default next url. This is because the user is trying + // to join a team and we want to make sure they are redirected to the + // correct page. + redirectTo.pathname = pathsConfig.app.joinTeam; + redirectTo.searchParams.set('invite_token', inviteToken); + } + if (token_hash && type) { const supabase = getSupabaseRouteHandlerClient();