import { sendOtp } from "@/actions/auth-actions"; import { betterAuth } from "better-auth"; import { prismaAdapter } from "better-auth/adapters/prisma"; import { phoneNumber } from "better-auth/plugins"; import prisma from "./db"; export const auth = betterAuth({ session: { cookieCache: { enabled: true, maxAge: 10 * 60, // Cache duration in seconds }, }, trustedOrigins: process.env.BETTER_AUTH_TRUSTED_ORIGINS?.split(",") || [ "localhost:3000", ], user: { additionalFields: { role: { type: "string", required: false, defaultValue: "USER", input: false, // don't allow user to set role }, lang: { type: "string", required: false, defaultValue: "en", }, }, }, database: prismaAdapter(prisma, { provider: "postgresql", // or "mysql", "postgresql", ...etc }), plugins: [ phoneNumber({ sendOTP: async ({ phoneNumber, code }) => { // Implement sending OTP code via SMS console.log("Send OTP in auth.ts", phoneNumber, code); await sendOtp(phoneNumber, code); }, }), ], });