xport const auth = betterAuth({
database: prismaAdapter(prisma, {
provider: "mysql",
}),
emailAndPassword: {
enabled: true,
autoSignIn: true,
minPasswordLength: 8,
requireEmailVerification: false,
},
plugins: [
organization({
creatorRole: "owner",
organizationLimit: 1,
membershipLimit: 50,
sendInvitationEmail: async (invite) => {
await sendEmail({
message: OrgInviteEmail({
org: invite.organization.name,
role: invite.role,
name: invite.inviter.user.name,
id: invite.id,
}),
subject: "Workwize Organisation Invite",
to: invite.email,
});
},
}),
admin(),
oidcProvider({
loginPage: "/auth/sign-in",
consentPage: "/authorization",
scopes: ["read", "read+write"],
metadata: {
issuer: appConfig.app_domain,
authorization_endpoint: "/api/auth/oauth2/authorize",
token_endpoint: "/api/auth/oauth2/token",
},
}),
sso(),
nextCookies(),
],
appName: "MyApp",
trustedOrigins: ["http://localhost:3000", "domain.com"]
}
xport const auth = betterAuth({
database: prismaAdapter(prisma, {
provider: "mysql",
}),
emailAndPassword: {
enabled: true,
autoSignIn: true,
minPasswordLength: 8,
requireEmailVerification: false,
},
plugins: [
organization({
creatorRole: "owner",
organizationLimit: 1,
membershipLimit: 50,
sendInvitationEmail: async (invite) => {
await sendEmail({
message: OrgInviteEmail({
org: invite.organization.name,
role: invite.role,
name: invite.inviter.user.name,
id: invite.id,
}),
subject: "Workwize Organisation Invite",
to: invite.email,
});
},
}),
admin(),
oidcProvider({
loginPage: "/auth/sign-in",
consentPage: "/authorization",
scopes: ["read", "read+write"],
metadata: {
issuer: appConfig.app_domain,
authorization_endpoint: "/api/auth/oauth2/authorize",
token_endpoint: "/api/auth/oauth2/token",
},
}),
sso(),
nextCookies(),
],
appName: "MyApp",
trustedOrigins: ["http://localhost:3000", "domain.com"]
}