user(); $wantsJson = $request instanceof Request && $request->wantsJson(); // Sicherheits-Boundary zuerst: ein verifizierter, aber deaktivierter // Account darf keine Session behalten – egal ob HTML oder JSON. if ($user && $user->hasVerifiedEmail() && ! $user->is_active) { Auth::guard('web')->logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); $message = __('Ihr Konto ist nicht aktiv. Bitte wenden Sie sich an den Support.'); return $wantsJson ? new JsonResponse(['message' => $message], 403) : redirect()->route('login')->withErrors(['email' => $message]); } // Unverifizierte Selbst-Registrierer sind authentifiziert, aber die // verified-Middleware sperrt geschützte Routen. HTML → Notice, JSON → 204. if ($user && ! $user->hasVerifiedEmail()) { return $wantsJson ? new JsonResponse('', 204) : redirect()->route('verification.notice'); } if ($wantsJson) { return new JsonResponse('', 204); } $default = LoginRedirect::homeFor($user); $intended = $request->session()->pull('url.intended'); return redirect(LoginRedirect::safeTarget($user, $intended, $default)); } }