export const auth = betterAuth({
appName: 'appname',
database: drizzleAdapter(db, {
provider: 'pg',
usePlural: true,
schema: {
users: UserTable,
sessions: SessionTable,
accounts: AccountTable,
verifications: VerificationTable,
},
}),
user: {
additionalFields: {
username: {
type: 'string',
required: true,
},
},
},
plugins: [
emailOTP({
async sendVerificationOTP({ email, otp, type }) {
// send email
},
sendVerificationOnSignUp: true,
otpLength: 6,
expiresIn: 10 * 60,
generateOTP(data, request) {
return '123456';
},
}),
username({
minUsernameLength: 3,
maxUsernameLength: 30,
usernameValidator: (username) => {
// Only allow alphanumeric characters, underscores, and dots
return /^[a-zA-Z0-9_.]+$/.test(username);
},
}),
openAPI(),
expo(),
],
emailAndPassword: {
enabled: true,
}
});
export const auth = betterAuth({
appName: 'appname',
database: drizzleAdapter(db, {
provider: 'pg',
usePlural: true,
schema: {
users: UserTable,
sessions: SessionTable,
accounts: AccountTable,
verifications: VerificationTable,
},
}),
user: {
additionalFields: {
username: {
type: 'string',
required: true,
},
},
},
plugins: [
emailOTP({
async sendVerificationOTP({ email, otp, type }) {
// send email
},
sendVerificationOnSignUp: true,
otpLength: 6,
expiresIn: 10 * 60,
generateOTP(data, request) {
return '123456';
},
}),
username({
minUsernameLength: 3,
maxUsernameLength: 30,
usernameValidator: (username) => {
// Only allow alphanumeric characters, underscores, and dots
return /^[a-zA-Z0-9_.]+$/.test(username);
},
}),
openAPI(),
expo(),
],
emailAndPassword: {
enabled: true,
}
});