// apps/server/src/lib/auth.ts
import { betterAuth } from "better-auth";
import { prismaAdapter } from "better-auth/adapters/prisma";
export const auth = betterAuth({
database: prismaAdapter(prisma, {
provider: "postgresql",
}),
emailVerification: {
sendVerificationEmail: async ({ user, url, token }) => {
await sendEmail({
to: user.email,
subject: "Verify your email",
from: "onboarding@resend.dev",
html: getVerifyEmailHtml(
user.name || user.email?.split("@")[0] || "User",
"Better Boilerplate",
process.env.CORS_ORIGIN as string,
token,
),
});
},
sendOnSignUp: true,
autoSignInAfterVerification: true,
expiresIn: 3600,
},
emailAndPassword: {
enabled: true,
requireEmailVerification: true,
sendResetPassword: async ({ user, url, token }) => {
const userName = user?.name || user?.email?.split("@")[0] || "User";
await sendEmail({
to: user.email,
subject: "Reset your password",
from: "onboarding@resend.dev",
html: getResetPasswordEmailHtml(userName, url),
});
},
},
});