export const auth = betterAuth({
basePath: "/api/auth",
baseURL: process.env.BETTER_AUTH_URL,
database: prismaAdapter(prisma, {
provider: "postgresql",
}),
emailAndPassword: {
enabled: true,
requireEmailVerification: true,
},
// some code
databaseHooks: {
user: {
create: {
async before(user) {
// modify user before it is created for adding our custom id
const { data: id } = await generateCustomId({ entityTybe: "users" });
return {
data: {
...user,
id: id,
},
};
},
},
},
},
advanced: {
database: {
generateId: false,
},
},
session: {
expiresIn: 60 * 60 * 24 * 30,
},
user: {
additionalFields: {
banned: {
type: "boolean",
input: false,
},
role: {
type: ["admin", "user", "manager"],
input: true,
},
banReason: {
type: "string",
input: false,
},
banExpires: {
type: "date",
input: false,
},
},
},
plugins: [
nextCookies(),
admin({
ac: accessControl,
roles: {
user: userRole,
admin: adminRole,
manager: managerRole,
},
adminRoles: ["admin", "manager"],
defaultRole: "user",
bannedUserMessage:
"You have been banned to login! please contact Deero Admin Team for support.!!",
}),
],
});
export const auth = betterAuth({
basePath: "/api/auth",
baseURL: process.env.BETTER_AUTH_URL,
database: prismaAdapter(prisma, {
provider: "postgresql",
}),
emailAndPassword: {
enabled: true,
requireEmailVerification: true,
},
// some code
databaseHooks: {
user: {
create: {
async before(user) {
// modify user before it is created for adding our custom id
const { data: id } = await generateCustomId({ entityTybe: "users" });
return {
data: {
...user,
id: id,
},
};
},
},
},
},
advanced: {
database: {
generateId: false,
},
},
session: {
expiresIn: 60 * 60 * 24 * 30,
},
user: {
additionalFields: {
banned: {
type: "boolean",
input: false,
},
role: {
type: ["admin", "user", "manager"],
input: true,
},
banReason: {
type: "string",
input: false,
},
banExpires: {
type: "date",
input: false,
},
},
},
plugins: [
nextCookies(),
admin({
ac: accessControl,
roles: {
user: userRole,
admin: adminRole,
manager: managerRole,
},
adminRoles: ["admin", "manager"],
defaultRole: "user",
bannedUserMessage:
"You have been banned to login! please contact Deero Admin Team for support.!!",
}),
],
});