From 8c8c49894ab87152228d25f6e70ce0e21da464c3 Mon Sep 17 00:00:00 2001 From: dmolinari Date: Thu, 12 Feb 2026 14:13:49 -0300 Subject: [PATCH] Fix: Rate Limit y Variables para Testeos Locales --- .../MotoresArgentinosV2.API/Controllers/AuthController.cs | 4 ++-- Frontend/src/components/ModerationModal.tsx | 8 +++++--- Frontend/src/pages/ExplorarPage.tsx | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Backend/MotoresArgentinosV2.API/Controllers/AuthController.cs b/Backend/MotoresArgentinosV2.API/Controllers/AuthController.cs index 40bc104..141f69d 100644 --- a/Backend/MotoresArgentinosV2.API/Controllers/AuthController.cs +++ b/Backend/MotoresArgentinosV2.API/Controllers/AuthController.cs @@ -34,8 +34,8 @@ public class AuthController : ControllerBase { HttpOnly = true, // Seguridad: JS no puede leer esto Expires = DateTime.UtcNow.AddMinutes(15), - Secure = true, // Solo HTTPS (localhost con https cuenta) - SameSite = SameSiteMode.Strict, + Secure = false, // Solo HTTPS (Para tests locales 'Secure = false' temporalmente) + SameSite = SameSiteMode.Lax, // Protección CSRF (Strict para máxima seguridad, pero puede ser Lax si hay problemas con redirecciones y testeos locales) IsEssential = true }; Response.Cookies.Append(cookieName, token, cookieOptions); diff --git a/Frontend/src/components/ModerationModal.tsx b/Frontend/src/components/ModerationModal.tsx index 832c8f1..76cd532 100644 --- a/Frontend/src/components/ModerationModal.tsx +++ b/Frontend/src/components/ModerationModal.tsx @@ -3,7 +3,7 @@ import { AdsV2Service } from '../services/ads.v2.service'; import { AdminService } from '../services/admin.service'; import { ChatService, type ChatMessage } from '../services/chat.service'; import { getImageUrl, formatCurrency, parseUTCDate } from '../utils/app.utils'; -import { AuthService } from '../services/auth.service'; + import { VEHICLE_TYPES, AUTO_SEGMENTS, @@ -14,6 +14,7 @@ import { VEHICLE_CONDITIONS, STEERING_TYPES } from '../constants/vehicleOptions'; +import { useAuth } from '../context/AuthContext'; interface Props { adSummary: any; @@ -44,7 +45,8 @@ export default function ModerationModal({ adSummary, onClose, onApprove }: Props const [photosToDelete, setPhotosToDelete] = useState([]); const [newPhotos, setNewPhotos] = useState([]); - const adminUser = AuthService.getCurrentUser(); + const { user: adminUser } = useAuth(); + //const adminUser = AuthService.getCurrentUser(); const scrollRef = useRef(null); // 🟢 HELPER ROBUSTO PARA IDs: Busca en todas las variantes de casing posibles @@ -102,7 +104,7 @@ export default function ModerationModal({ adSummary, onClose, onApprove }: Props fetchData(); const interval = setInterval(loadChat, 5000); return () => clearInterval(interval); - }, [adSummary, adminUser]); + }, [adSummary?.adID, adSummary?.AdID, adminUser?.id]); useEffect(() => { if (scrollRef.current) scrollRef.current.scrollTop = scrollRef.current.scrollHeight; diff --git a/Frontend/src/pages/ExplorarPage.tsx b/Frontend/src/pages/ExplorarPage.tsx index cc5a3aa..6683ef1 100644 --- a/Frontend/src/pages/ExplorarPage.tsx +++ b/Frontend/src/pages/ExplorarPage.tsx @@ -82,7 +82,7 @@ export default function ExplorarPage() { fetchListings(); if (showMobileFilters) setShowMobileFilters(false); - }, [searchParams]); + }, [searchParams.toString()]); const applyFilters = () => { const newParams = new URLSearchParams(searchParams);