Cómo Solucionar el Error Invalid Form Key Please Refresh the Page en Magento 2 de Forma Definitiva

Cómo Solucionar el Error Invalid Form Key Please Refresh the Page en Magento 2 de Forma Definitiva
Anuncio relacionado

¿Por qué ocurre el error 'Invalid Form Key. Please refresh the page' en Magento?

El error 'Invalid Form Key' en Magento 2 es un mecanismo de seguridad diseñado para prevenir ataques de falsificación de solicitudes en sitios cruzados (CSRF). Magento genera una clave única (form key) para cada sesión de usuario y la valida en cada envío de formulario. Si hay una discrepancia entre la clave enviada y la almacenada en la sesión, el sistema bloquea la acción mostrando este mensaje.

Este problema se presenta con mayor frecuencia al intentar iniciar sesión en el panel de administración, al guardar configuraciones de la tienda o al añadir productos masivamente al carrito. Las causas principales suelen ser una configuración incorrecta de las cookies, límites insuficientes en la configuración de PHP o problemas de caché en el servidor.

Método 1: Incrementar el valor de max_input_vars en PHP

Cuando trabajas con catálogos grandes o guardas configuraciones extensas en Magento, el formulario envía miles de variables simultáneamente. Si el límite establecido en la directiva max_input_vars de PHP es muy bajo, el servidor web truncará los datos del formulario, eliminando la clave de formulario (form key) antes de que Magento pueda validarla.

Para solucionar esto, debes modificar la configuración de tu servidor de la siguiente manera:

  1. Accede a tu servidor a través de SSH o mediante el administrador de archivos de tu hosting.
  2. Localiza y abre tu archivo de configuración de PHP activo, comúnmente llamado php.ini.
  3. Busca la línea que contiene max_input_vars. Si está comentada con un punto y coma (;) al principio, elimínalo.
  4. Cambia su valor a un mínimo de 10000 o más si manejas una tienda compleja: max_input_vars = 10000
  5. Guarda los cambios en el archivo.
  6. Reinicia tu servicio de servidor web (Apache, Nginx o PHP-FPM) para aplicar los cambios usando uno de los siguientes comandos según tu sistema: sudo systemctl restart apache2 o bien sudo systemctl restart php-fpm.

Método 2: Configurar correctamente el dominio y tiempo de vida de las Cookies

Una discrepancia entre el dominio configurado en la base de datos de Magento y el dominio real desde el cual accedes causará que el navegador no envíe las cookies de sesión correctas, disparando el error de validación de formulario.

Puedes corregir esta configuración directamente en la base de datos ejecutando consultas SQL desde phpMyAdmin o la consola de MySQL:

  1. Accede a tu base de datos de Magento.
  2. Busca la tabla llamada core_config_data.
  3. Verifica los valores para las siguientes rutas (path) y asegúrate de que coincidan exactamente con tu dominio real: web/cookie/cookie_domain y web/cookie/cookie_lifetime.
  4. Si estás trabajando en un entorno local (localhost), es altamente recomendable dejar el valor de web/cookie/cookie_domain completamente vacío o como NULL para evitar conflictos de resolución de nombres. Puedes actualizarlo con la siguiente consulta: UPDATE core_config_data SET value = NULL WHERE path = 'web/cookie/cookie_domain';
  5. Adicionalmente, asegúrate de que el tiempo de vida de las cookies (cookie lifetime) no esté definido en 0. Un valor óptimo es 86400 (24 horas): UPDATE core_config_data SET value = 86400 WHERE path = 'web/cookie/cookie_lifetime';

Método 3: Limpiar la caché de Magento y del navegador

Si has aplicado los cambios anteriores y el error persiste, es probable que la sesión antigua siga almacenada en la caché de tu navegador o en los sistemas de almacenamiento de caché del servidor (como Redis o Varnish).

Sigue estos pasos para realizar una limpieza profunda:

  1. Abre la terminal de tu servidor y dirígete al directorio raíz de tu instalación de Magento.
  2. Limpia la caché de Magento ejecutando el comando: php bin/magento cache:clean y luego php bin/magento cache:flush.
  3. Si usas almacenamiento de sesiones en archivos de sistema, elimina el contenido de la carpeta de sesiones temporales con: rm -rf var/session/*.
  4. Finalmente, abre tu navegador web, borra la caché y las cookies correspondientes a tu dominio de Magento, o intenta acceder utilizando una ventana de navegación de incógnito privada.
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Mac

Cómo Solucionar el Error de Impresora Pausada en macOS de Forma Definitiva

Soluciona el molesto problema de la impresora pausada en tu ordenador Mac. Sigue nuestros sencillos pasos para recuperar tus funciones de impresión al instante.

Leer guía completa →
Juegos

Cómo Solucionar el Error VAN 1067 en Valorant de Forma Definitiva

El error VAN 1067 en Valorant impide que miles de jugadores disfruten del shooter táctico de Riot Games. Descubre cómo solucionarlo de raíz configurando correctamente tu sistema Windows.

Leer guía completa →
Apps

Cómo Solucionar el Error 'Sin Ruta' (No Route) en Discord de Forma Definitiva

El error Sin Ruta en Discord impide establecer comunicación en los canales de voz. Consulta nuestra guía detallada para resolver este problema de red en minutos.

Leer guía completa →