OAuth con Google y actualizaciones optimistas en admin
Esta actualización añade autenticación con Google como alternativa al registro tradicional y mejora el rendimiento percibido del panel.
Esta actualización añade autenticación con Google como alternativa al registro tradicional y mejora el rendimiento percibido del panel de administración.
Google OAuth
Configuramos Google como proveedor de autenticación en Supabase. El flujo usa el estándar OAuth 2.0: el usuario hace clic en "Continuar con Google", se redirige a la pantalla de consentimiento de Google, autoriza, y regresa a Epica con la sesión iniciada.
En el componente de autenticación, el botón de Google está posicionado en la parte superior del formulario. El separador visual "o" divide las opciones de OAuth de los campos tradicionales de email/contraseña.
Un detalle de implementación: configuramos el parámetro prompt de Google OAuth para evitar mostrar la pantalla de selección de cuenta a usuarios recurrentes. Si el usuario ya autorizó Epica anteriormente y tiene una sola cuenta de Google, el proceso es prácticamente instantáneo.
Actualizaciones optimistas
El panel de administración ahora usa actualizaciones optimistas para las acciones más comunes:
- Publicar/despublicar informe
- Cambiar industria de un informe
- Cambiar ubicación de un informe
El patrón es: actualizar el estado local inmediatamente, enviar la petición al servidor en background, y revertir si falla. Esto elimina el delay percibido entre hacer clic y ver el cambio reflejado.
Usamos los hooks de React Query (useMutation con onMutate, onError, onSettled) para implementar este patrón de forma consistente.
También eliminamos un setInterval que causaba recargas periódicas innecesarias en la página de admin.
Protección contra spam
El formulario de contacto ahora incluye validaciones adicionales: honeypot field (campo oculto que los bots completan), validación de tiempo mínimo de envío, y rate limiting básico. Estas medidas son invisibles para usuarios legítimos pero efectivas contra bots automatizados.
Cambios técnicos
- Configuración de Google OAuth en Supabase Auth
- Componente de auth con botón de Google prominente
- Parámetro
prompt: 'none'para usuarios recurrentes - Mutations optimistas con React Query
- Eliminación de polling innecesario en admin
- Honeypot y validación temporal en formulario de contacto