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: `

Passwort zur\xFCcksetzen

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

` }; await transporter.sendMail(mailOptions); return { success: true, message: "Falls ein Konto mit dieser E-Mail existiert, wurde eine E-Mail gesendet." }; } catch (error) { console.error("Password-Reset-Fehler:", error); return { success: true, message: "Falls ein Konto mit dieser E-Mail existiert, wurde eine E-Mail gesendet." }; } }); export { resetPassword_post as default }; //# sourceMappingURL=reset-password.post.mjs.map