diff --git a/src/app/api/auth/verify-email/route.ts b/src/app/api/auth/verify-email/route.ts index bbcbce4..1006b9e 100755 --- a/src/app/api/auth/verify-email/route.ts +++ b/src/app/api/auth/verify-email/route.ts @@ -1,6 +1,7 @@ import { NextRequest, NextResponse } from "next/server" import { getWorkOS } from "@workos-inc/authkit-nextjs" import { z } from "zod" +import { ensureUserExists } from "@/lib/auth" const verifyEmailSchema = z.object({ code: z.string().min(1, "Verification code is required"), @@ -51,6 +52,15 @@ export async function POST(request: NextRequest) { const workos = getWorkOS() await workos.userManagement.verifyEmail({ userId, code }) + const user = await workos.userManagement.getUser(userId) + await ensureUserExists({ + id: user.id, + email: user.email, + firstName: user.firstName, + lastName: user.lastName, + profilePictureUrl: user.profilePictureUrl, + }) + return NextResponse.json({ success: true, message: "Email verified successfully", diff --git a/src/components/auth/signup-form.tsx b/src/components/auth/signup-form.tsx index 7c96196..5469f7a 100755 --- a/src/components/auth/signup-form.tsx +++ b/src/components/auth/signup-form.tsx @@ -45,11 +45,14 @@ export function SignupForm() { success: boolean message?: string error?: string + userId?: string } if (result.success) { toast.success(result.message || "Account created!") - router.push("/verify-email?email=" + encodeURIComponent(data.email)) + router.push( + `/verify-email?email=${encodeURIComponent(data.email)}&userId=${encodeURIComponent(result.userId ?? "")}` + ) } else { toast.error(result.error || "Signup failed") }