export const auth = betterAuth({
emailVerification: {
sendOnSignUp: true,
autoSignInAfterVerification: true,
sendVerificationEmail: async ({ user, url }) => {
await sendEmailVerification({
email: user.email,
url,
});
},
},
emailAndPassword: {
enabled: true,
minPasswordLength: 8,
maxPasswordLength: 40,
sendOnSignUp: true,
sendResetPassword: async ({ user, url }) => {
await sendForgetPassword({
email: user.email,
url,
});
},
password: {
hash: async (password) => await Bun.password.hash(password),
verify: async ({ hash, password }) =>
await Bun.password.verify(password, hash),
},
},
trustedOrigins: ["http://localhost:3000"],
plugins: [
oneTap({
disableSignup: true,
}),
username(),
admin(),
openAPI(),
twoFactor(),
organization({
organizationLimit: 1,
}),
],
database: drizzleAdapter(db, {
provider: "pg",
usePlural: true,
}),
session: {
expiresIn: 60 * 60 * 24 * 30,
updateAge: 0,
cookieCache: {
enabled: false,
},
},
socialProviders: {
google: {
clientId: env.GOOGLE_CLIENT_ID,
clientSecret: env.GOOGLE_CLIENT_SECRET,
},
},
});
export const auth = betterAuth({
emailVerification: {
sendOnSignUp: true,
autoSignInAfterVerification: true,
sendVerificationEmail: async ({ user, url }) => {
await sendEmailVerification({
email: user.email,
url,
});
},
},
emailAndPassword: {
enabled: true,
minPasswordLength: 8,
maxPasswordLength: 40,
sendOnSignUp: true,
sendResetPassword: async ({ user, url }) => {
await sendForgetPassword({
email: user.email,
url,
});
},
password: {
hash: async (password) => await Bun.password.hash(password),
verify: async ({ hash, password }) =>
await Bun.password.verify(password, hash),
},
},
trustedOrigins: ["http://localhost:3000"],
plugins: [
oneTap({
disableSignup: true,
}),
username(),
admin(),
openAPI(),
twoFactor(),
organization({
organizationLimit: 1,
}),
],
database: drizzleAdapter(db, {
provider: "pg",
usePlural: true,
}),
session: {
expiresIn: 60 * 60 * 24 * 30,
updateAge: 0,
cookieCache: {
enabled: false,
},
},
socialProviders: {
google: {
clientId: env.GOOGLE_CLIENT_ID,
clientSecret: env.GOOGLE_CLIENT_SECRET,
},
},
});