feat(auth): add sign up and sign in functions with credentials

This commit is contained in:
cfngc4594 2025-03-14 17:06:19 +08:00
parent abae72118a
commit 468e72e9a8

26
src/app/actions/auth.ts Normal file
View File

@ -0,0 +1,26 @@
"use server";
import bcrypt from "bcrypt";
import prisma from "@/lib/prisma";
import { signIn } from "@/lib/auth";
import { authSchema } from "@/lib/zod";
import { redirect } from "next/navigation";
export async function signInWithCredentials(formData: { email: string; password: string }) {
await signIn("credentials", formData);
}
export async function signUpWithCredentials(formData: { email: string; password: string }) {
const validatedData = await authSchema.parseAsync(formData);
const saltRounds = 10;
const pwHash = await bcrypt.hash(validatedData.password, saltRounds);
await prisma.user.create({
data: {
email: validatedData.email,
password: pwHash,
},
});
redirect("/sign-in");
}