¿Qué es el error 'Invalid Form Key' en Magento 2?
El error 'Invalid Form Key' es uno de los problemas más frustrantes y comunes a los que se enfrentan los administradores y usuarios de Magento 2. Ocurre generalmente cuando la clave de formulario (form key) generada por el sistema no coincide con la enviada por el navegador, interrumpiendo acciones críticas como iniciar sesión en el admin, añadir productos al carrito o completar el proceso de pago (checkout).
Causas principales del error
Este fallo de seguridad suele estar relacionado con discrepancias en la configuración de las cookies o con problemas de almacenamiento en caché. Las causas más habituales son:
- Configuración incorrecta del dominio base en la URL (falta de coherencia entre con 'www' y sin 'www', o entre HTTP y HTTPS).
- Problemas con los dominios de las cookies (Cookie Domain o Cookie Path mal configurados).
- Caché de Magento desactualizada o sesiones bloqueadas.
- Límites de variables en el servidor (como
max_input_varsen PHP).
Método 1: Ajustar la URL Base y las Cookies desde la Base de Datos
Si no puedes acceder al panel de administración debido a este error, puedes corregir los valores directamente ejecutando consultas SQL en tu base de datos mediante phpMyAdmin o la terminal.
- Accede a tu gestor de base de datos (por ejemplo, phpMyAdmin).
- Busca la tabla
core_config_datay ejecuta las siguientes consultas (asegúrate de cambiarhttps://tu-tienda.com/por tu URL real): UPDATE core_config_data SET value='https://tu-tienda.com/' WHERE path='web/unsecure/base_url';UPDATE core_config_data SET value='https://tu-tienda.com/' WHERE path='web/secure/base_url';- Limpia los campos relacionados con las cookies para forzar a Magento a usar los valores por defecto:
UPDATE core_config_data SET value='' WHERE path='web/cookie/cookie_domain';UPDATE core_config_data SET value='' WHERE path='web/cookie/cookie_path';
Método 2: Limpiar la Caché y Reindexar por la Terminal SSH
Los archivos de caché corruptos suelen retener claves de formulario antiguas. Para solucionarlo, conéctate a tu servidor mediante SSH y ejecuta los comandos oficiales de limpieza de Magento.
- Abre tu terminal SSH y navega hasta la raíz de tu instalación de Magento:
cd /var/www/html/tu-tienda - Limpia toda la caché del sistema ejecutando:
php bin/magento cache:clean - Elimina el contenido de las carpetas de generación y caché manualmente si el problema persiste:
rm -rf var/cache/* var/generation/* var/page_cache/* - Vuelve a compilar y limpiar:
php bin/magento setup:upgrade
Método 3: Aumentar el límite de variables en PHP (max_input_vars)
A veces, el formulario envía más datos de los que PHP permite procesar, lo que trunca la clave de formulario y genera el error. Sigue estos pasos para ampliar el límite:
- Localiza tu archivo de configuración de PHP, normalmente llamado
php.ini. - Busca la directiva
max_input_varsy aumenta su valor a5000o más:max_input_vars = 5000 - Guarda los cambios y reinicia tu servidor web (Apache o Nginx):
sudo systemctl restart apache2osudo systemctl restart nginx