flash()->get(); $error = ''; $info = ''; $email = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $action = $_POST['action'] ?? 'request'; $email = strtolower(trim((string)($_POST['email'] ?? ''))); $code = strtoupper(trim((string)($_POST['code'] ?? ''))); $password = (string)($_POST['password'] ?? ''); $password2 = (string)($_POST['password_confirm'] ?? ''); $auth = new \App\Auth($app); $mailer = new \App\Mailer($app); try { if ($action === 'request') { $data = $auth->createResetCode($email); $mailer->sendTemplate('password_reset', $email, [ 'code' => $data['code'], 'display_name' => $data['display_name'] ?? $email, ]); $info = 'Reset-Code wurde gesendet. Bitte prüfe dein Postfach (und Spam).'; } else { if ($password !== $password2) { throw new \RuntimeException('Passwörter stimmen nicht überein.'); } if (strlen($password) < 8) { throw new \RuntimeException('Passwort muss mindestens 8 Zeichen haben.'); } $userId = $auth->verifyResetCode($email, $code); $auth->resetPassword($userId, $password); $app->flash()->set('success', 'Passwort wurde aktualisiert. Bitte melde dich an.'); redirect('/login'); } } catch (\Throwable $e) { $error = $e->getMessage(); } } ?>
Passwort zurücksetzen

Neues Passwort anfordern

Fordere einen Reset-Code an und setze dein Passwort zurück.

Fehler:

Code eingeben

Zurück zum Login