// server/lib/auth.ts
const { ac, roles } = OrganizationPluginOptions;
const betterAuthOptions = {
database: drizzleAdapter(db, {
provider: "pg",
schema: {
user: AuthUserTable,
account: AuthAccountTable,
session: AuthSessionTable,
verification: AuthVerificationTable,
organization: AuthOrganizationTable,
member: AuthOrganizationMemberTable,
team: AuthTeamTable,
teamMember: AuthTeamMemberTable,
invitation: AuthInvitationTable,
},
}),
advanced: {
database: {
generateId: false,
},
},
emailAndPassword: {
enabled: true,
},
plugins: [
admin(),
organization({
ac,
roles,
allowUserToCreateOrganization: false,
teams: {
enabled: true,
allowRemovingAllTeams: false,
},
}),
],
}
export const auth = betterAuth(betterAuthOptions);
export type ServerAuth = typeof auth;
// server/lib/auth.ts
const { ac, roles } = OrganizationPluginOptions;
const betterAuthOptions = {
database: drizzleAdapter(db, {
provider: "pg",
schema: {
user: AuthUserTable,
account: AuthAccountTable,
session: AuthSessionTable,
verification: AuthVerificationTable,
organization: AuthOrganizationTable,
member: AuthOrganizationMemberTable,
team: AuthTeamTable,
teamMember: AuthTeamMemberTable,
invitation: AuthInvitationTable,
},
}),
advanced: {
database: {
generateId: false,
},
},
emailAndPassword: {
enabled: true,
},
plugins: [
admin(),
organization({
ac,
roles,
allowUserToCreateOrganization: false,
teams: {
enabled: true,
allowRemovingAllTeams: false,
},
}),
],
}
export const auth = betterAuth(betterAuthOptions);
export type ServerAuth = typeof auth;