monaco-editor-lsp-next/src/app/actions/auth.ts

27 lines
731 B
TypeScript
Raw Normal View History

"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");
}