import { d as defineEventHandler, r as readBody, c as createError } from '../../../nitro/nitro.mjs'; import { r as readUsers, h as hashPassword, w as writeUsers } from '../../../_/auth.mjs'; import nodemailer from 'nodemailer'; import crypto from 'crypto'; import 'node:http'; import 'node:https'; import 'node:events'; import 'node:buffer'; import 'node:fs'; import 'node:path'; import 'node:crypto'; import 'node:url'; import 'bcryptjs'; import 'jsonwebtoken'; import 'fs'; import 'path'; const resetPassword_post = defineEventHandler(async (event) => { try { const body = await readBody(event); const { email } = body; if (!email) { throw createError({ statusCode: 400, message: "E-Mail-Adresse ist erforderlich" }); } const users = await readUsers(); const user = users.find((u) => u.email.toLowerCase() === email.toLowerCase()); if (!user) { return { success: true, message: "Falls ein Konto mit dieser E-Mail existiert, wurde eine E-Mail gesendet." }; } const tempPassword = crypto.randomBytes(8).toString("hex"); const hashedPassword = await hashPassword(tempPassword); user.password = hashedPassword; user.passwordResetRequired = true; const updatedUsers = users.map((u) => u.id === user.id ? user : u); await writeUsers(updatedUsers); const transporter = nodemailer.createTransport({ host: process.env.SMTP_HOST || "smtp.gmail.com", port: process.env.SMTP_PORT || 587, secure: false, auth: { user: process.env.SMTP_USER, pass: process.env.SMTP_PASS } }); const mailOptions = { from: process.env.SMTP_FROM || "noreply@harheimertc.de", to: user.email, subject: "Passwort zur\xFCcksetzen - Harheimer TC", html: `
Hallo ${user.name},
Sie haben eine Anfrage zum Zur\xFCcksetzen Ihres Passworts gestellt.
Ihr tempor\xE4res Passwort lautet: ${tempPassword}
Bitte melden Sie sich damit an und \xE4ndern Sie Ihr Passwort im Mitgliederbereich.
Falls Sie diese Anfrage nicht gestellt haben, ignorieren Sie diese E-Mail.
Mit sportlichen Gr\xFC\xDFen,
Ihr Harheimer TC