import { NextRequest, NextResponse } from 'next/server'; import { prisma } from '@/lib/prisma'; import bcrypt from 'bcryptjs'; // POST - 로그인 export async function POST(request: NextRequest) { try { const body = await request.json(); const { email, password } = body; if (!email || !password) { return NextResponse.json({ error: '이메일과 비밀번호를 입력해주세요.' }, { status: 400 }); } // 사용자 조회 const user = await prisma.user.findUnique({ where: { email }, }); if (!user) { return NextResponse.json({ error: '아이디 또는 비밀번호가 올바르지 않습니다.' }, { status: 401 }); } // 계정 활성화 확인 if (!user.isActive) { return NextResponse.json({ error: '비활성화된 계정입니다.' }, { status: 403 }); } // 비밀번호 확인 const isPasswordValid = await bcrypt.compare(password, user.password); if (!isPasswordValid) { return NextResponse.json({ error: '아이디 또는 비밀번호가 올바르지 않습니다.' }, { status: 401 }); } // 비밀번호 제외하고 사용자 정보 반환 const { password: _, ...userWithoutPassword } = user; return NextResponse.json({ user: userWithoutPassword, message: '로그인 성공', }); } catch (error) { console.error('Error during login:', error); return NextResponse.json({ error: '로그인 중 오류가 발생했습니다.' }, { status: 500 }); } }