import type { APIRoute } from "astro"; import { db } from "../../../db"; import { users } from "../../../db/schema"; import { verifyPassword, setAuthCookie } from "../../../lib/auth"; import { eq } from "drizzle-orm"; export const POST: APIRoute = async ({ request, cookies, redirect }) => { const formData = await request.formData(); const email = formData.get("email")?.toString(); const password = formData.get("password")?.toString(); if (!email || !password) { return redirect("/login?error=missing_fields"); } const user = await db .select() .from(users) .where(eq(users.email, email)) .get(); if (!user || !(await verifyPassword(password, user.passwordHash))) { return redirect("/login?error=invalid_credentials"); } setAuthCookie(cookies, user.id); return redirect("/dashboard"); };