query('token'); $payload = Cache::pull("recovery:$token"); // pull = get + forget abort_unless($payload, 410); // Gone / abgelaufen abort_unless($payload['user_id'] === $request->user()->id, 403); $email = (string) $request->user()->email; $now = now()->toDateTimeString(); $lines = []; $lines[] = 'MailWolt – Recovery-Codes'; $lines[] = "Account: $email"; $lines[] = "Erzeugt: $now"; $lines[] = str_repeat('-', 34); foreach ($payload['codes'] as $code) { $lines[] = $code; } $lines[] = str_repeat('-', 34); $lines[] = 'Bewahre diese Codes sicher offline auf. Jeder Code ist nur einmal gültig.'; $content = implode("\n", $lines); $filename = 'mailwolt_recovery_codes_' . now()->format('Ymd_His') . '.txt'; return Response::streamDownload( fn () => print($content), $filename, ['Content-Type' => 'text/plain; charset=UTF-8'] ); } }