From eba4df1e4d7ca5dfa91cdae75134f92c2a846491 Mon Sep 17 00:00:00 2001 From: alma Date: Thu, 17 Apr 2025 13:57:40 +0200 Subject: [PATCH] solve mail backend 5 --- app/api/auth/[...nextauth]/route.ts | 23 ++++++++++++++++++++--- app/api/mail/login/route.ts | 7 +++++++ 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/app/api/auth/[...nextauth]/route.ts b/app/api/auth/[...nextauth]/route.ts index c2797fd0..43d9cf19 100644 --- a/app/api/auth/[...nextauth]/route.ts +++ b/app/api/auth/[...nextauth]/route.ts @@ -96,11 +96,26 @@ export const authOptions: NextAuthOptions = { }, callbacks: { async signIn({ user, account, profile }) { - if (!user.email) return false; + if (!user.email) { + console.error('No email provided in user profile'); + return false; + } try { + console.log('Attempting to create/update user:', { + id: user.id, + email: user.email + }); + + // First check if user exists + const existingUser = await prisma.user.findUnique({ + where: { id: user.id } + }); + + console.log('Existing user check:', existingUser); + // Create or update user in local database - await prisma.user.upsert({ + const result = await prisma.user.upsert({ where: { id: user.id }, update: { email: user.email, @@ -112,9 +127,11 @@ export const authOptions: NextAuthOptions = { password: '', // We don't store password for Keycloak users }, }); + + console.log('User upsert result:', result); return true; } catch (error) { - console.error('Error creating/updating user:', error); + console.error('Error in signIn callback:', error); return false; } }, diff --git a/app/api/mail/login/route.ts b/app/api/mail/login/route.ts index 345fcf6d..28020bda 100644 --- a/app/api/mail/login/route.ts +++ b/app/api/mail/login/route.ts @@ -7,7 +7,10 @@ import { prisma } from '@/lib/prisma'; export async function POST(request: Request) { try { const session = await getServerSession(authOptions); + console.log('Session in mail login:', session); + if (!session?.user?.id) { + console.error('No user ID in session'); return NextResponse.json( { error: 'Unauthorized' }, { status: 401 } @@ -15,11 +18,15 @@ export async function POST(request: Request) { } // Verify user exists + console.log('Checking for user with ID:', session.user.id); const user = await prisma.user.findUnique({ where: { id: session.user.id } }); + console.log('User found in database:', user); + if (!user) { + console.error('User not found in database'); return NextResponse.json( { error: 'User not found' }, { status: 404 }