export const auth = betterAuth({
database: prismaAdapter(prisma, {
provider: "postgresql",
}),
plugins: [admin(), openAPI()],
trustedOrigins: appConfig.CORS_ORIGINS,
emailAndPassword: {
enabled: true,
requireEmailVerification: false,
sendResetPassword: async ({ user, url }) => {
await NotifyService.sendResetPasswordEmail(user.email, url, {
username: user.name || user.email.split("@")[0],
});
},
autoSignIn: true,
},
account: {
accountLinking: {
enabled: true,
trustedProviders: ["google"],
},
},
user: {
additionalFields: {
role: {
type: "string",
input: false,
required: false,
defaultValue: "user",
returned: true, // add this line
},
},
},
socialProviders: {
google: {
clientId: appConfig.GOOGLE_CLIENT_ID,
clientSecret: appConfig.GOOGLE_CLIENT_SECRET,
},
},
emailVerification: {
expiresIn: 60 * 60, // 1h expires in
sendOnSignUp: true,
sendVerificationEmail: async ({ user, url }) => {
await NotifyService.sendVerificationEmail(user.email, url, {
username: user.name || user.email.split("@")[0],
});
},
},
});
export const auth = betterAuth({
database: prismaAdapter(prisma, {
provider: "postgresql",
}),
plugins: [admin(), openAPI()],
trustedOrigins: appConfig.CORS_ORIGINS,
emailAndPassword: {
enabled: true,
requireEmailVerification: false,
sendResetPassword: async ({ user, url }) => {
await NotifyService.sendResetPasswordEmail(user.email, url, {
username: user.name || user.email.split("@")[0],
});
},
autoSignIn: true,
},
account: {
accountLinking: {
enabled: true,
trustedProviders: ["google"],
},
},
user: {
additionalFields: {
role: {
type: "string",
input: false,
required: false,
defaultValue: "user",
returned: true, // add this line
},
},
},
socialProviders: {
google: {
clientId: appConfig.GOOGLE_CLIENT_ID,
clientSecret: appConfig.GOOGLE_CLIENT_SECRET,
},
},
emailVerification: {
expiresIn: 60 * 60, // 1h expires in
sendOnSignUp: true,
sendVerificationEmail: async ({ user, url }) => {
await NotifyService.sendVerificationEmail(user.email, url, {
username: user.name || user.email.split("@")[0],
});
},
},
});