issue, user, status

This commit is contained in:
2026-09-18 14:32:38 +03:00
parent 33490da091
commit 7a4220aba8
123 changed files with 3950 additions and 712 deletions
+66 -8
View File
@@ -1,18 +1,76 @@
import { betterAuth } from 'better-auth';
import { Pool } from 'pg';
import { dbConfig } from '../configs/db.config.js';
import { prismaAdapter } from '@better-auth/prisma-adapter';
import prisma from './prisma.js';
import EmailSender from './email-sender.js';
import { authTransformResponse } from './auth-plugins/auth-response.js';
export const auth = betterAuth({
database: new Pool({
host: dbConfig.host,
port: dbConfig.port,
user: dbConfig.username,
password: dbConfig.password,
database: dbConfig.database,
appName: process.env.APP_NAME ?? 'app',
basePath: '/api/auth',
plugins: [
// authTransformResponse()
],
database: prismaAdapter(prisma, {
provider: 'postgresql',
}),
advanced: {
disableOriginCheck: true,
disableCSRFCheck: true,
database: {
joins: true,
},
},
hooks: {},
secret: process.env.BETTER_AUTH_SECRET,
baseURL: process.env.BETTER_AUTH_URL ?? 'http://localhost:3000',
emailAndPassword: {
enabled: true,
autoSignIn: false,
requireEmailVerification: false,
onExistingUserSignUp: async ({ user }, request) => {
console.log('onExistingUserSignUp', { user });
void EmailSender.getTransporter().sendMail({
to: user.email,
subject: 'Sign-up attempt with your email',
text: 'Someone tried to create an account using your email address. If this was you, try signing in instead. If not, you can safely ignore this email.',
});
},
sendResetPassword: async ({ user, url, token }, request) => {
console.log('sendResetPassword', { user, url, token });
void EmailSender.getTransporter().sendMail({
to: user.email,
subject: 'Reset your password',
text: `Click the link to reset your password: ${url}`,
});
},
onPasswordReset: async ({ user }, request) => {
// your logic here
console.log('onPasswordReset', { user });
void EmailSender.getTransporter().sendMail({
to: user.email,
subject: 'Reset your password result',
text: `Password for user ${user.email} has been reset.`,
});
},
},
emailVerification: {
sendOnSignIn: true,
autoSignInAfterVerification: true,
sendVerificationEmail: async ({ user, url }) => {
console.log('emailVerification', { user, url });
void EmailSender.getTransporter().sendMail({
to: user.email,
subject: 'Verify your email address',
text: `Click the link to verify your email: ${url}`,
});
},
},
session: {
freshAge: 0,
cookieCache: {
enabled: true,
maxAge: 30,
},
},
});