Introducción al error Invalid Form Key en Magento 2
El error Invalid Form Key es uno de los problemas más frustrantes a los que se enfrentan tanto los administradores como los clientes en Magento 2. Este fallo suele aparecer de manera repentina al intentar iniciar sesión en el panel de administración (Admin), al guardar configuraciones o al añadir productos al carrito de compras en el frontend. La clave de formulario (Form Key) es un mecanismo de seguridad fundamental en Magento para prevenir ataques CSRF (Cross-Site Request Forgery), y cuando deja de coincidir o no se transmite correctamente, la plataforma bloquea la acción.
Causas principales del error Invalid Form Key
Antes de aplicar cualquier solución, es importante comprender por qué ocurre este fallo. Las causas más comunes incluyen:
- Problemas de configuración en las URLs base (dominio con o sin 'www', o uso incorrecto de HTTP en lugar de HTTPS).
- Configuración incorrecta de las cookies del navegador o del servidor (dominio de cookie y ruta de la cookie).
- Caché de Magento o sistemas de caché externos (como Varnish o Redis) desactualizados.
- Límites de variables PHP insuficientes (como
max_input_vars) que truncan los datos enviados por formulario.
Método 1: Ajustar las URLs Base y la configuración de Cookies
Una de las causas más frecuentes está relacionada con una discrepancia en las URLs del sitio o en las políticas de cookies. Sigue estos pasos para solucionarlo:
- Accede a tu base de datos mediante una herramienta como phpMyAdmin.
- Busca la tabla
core_config_datay localiza los registros correspondientes aweb/unsecure/base_urlyweb/secure/base_url. - Asegúrate de que ambas URLs coincidan exactamente con el dominio que estás utilizando (incluyendo la barra final
/). - Si puedes acceder al panel de administración, navega hasta Stores > Configuration > General > Web y revisa la sección Cookie Settings.
- Verifica que el
Cookie Domaincoincida con tu dominio (por ejemplo,.tu-dominio.com) o déjalo en blanco.
Método 2: Aumentar el límite de max_input_vars en PHP
Cuando el formulario envía demasiados datos y el servidor tiene un límite bajo configurado, la clave de formulario se pierde en el proceso, generando el error.
- Accede al archivo de configuración de PHP de tu servidor (
php.ini). - Busca la directiva
max_input_vars. Si está comentada, elimina el punto y coma inicial. - Modifica su valor a al menos
5000o10000:max_input_vars = 5000 - Guarda los cambios y reinicia tu servicio web (Apache o Nginx) junto con PHP-FPM.
Método 3: Limpiar la caché y regenerar índices
Los datos corruptos en la caché de Magento pueden provocar fallos en la validación de tokens. Ejecuta los siguientes comandos SSH para limpiar el sistema:
- Conéctate a tu servidor mediante SSH y navega hasta la raíz de tu instalación de Magento.
- Ejecuta el comando de limpieza de caché:
php bin/magento cache:clean - Limpia la caché completa:
php bin/magento cache:flush - Revisa los permisos de las carpetas
var,pubygeneratedejecutando:find var generated pub/static -type f -exec chmod 644 {} +yfind var generated pub/static -type d -exec chmod 755 {} +