Magento 1.9 ¡No se puede iniciar sesión en el panel de administración!


99

He instalado Magento 1.9 . Funcionó bien durante una semana. De repente, ayer, cuando intenté iniciar sesión en el panel de administración de Magento y escribí usernamey password, hice clic en el botón Iniciar sesión y no pasó nada. La página se actualiza y eso es todo. Sin error ni ningún otro mensaje.

Si ingresé un nombre de usuario o contraseña incorrectos, muestra un error.

Después de buscar en Google este problema, me recomendaron comentar las siguientes líneas en:

app \ code \ core \ Mage \ Core \ Model \ Session \ Abstract \ Varien.php

/* to solve login issue */
  /*if (!$cookieParams['httponly']) {
  unset($cookieParams['httponly']);
  if (!$cookieParams['secure']) {
  unset($cookieParams['secure']);
  if (!$cookieParams['domain']) {
  unset($cookieParams['domain']);
  }
  }
  }

if (isset($cookieParams['domain'])) {
  $cookieParams['domain'] = $cookie->getDomain();*/ //I have commented these lines

Y para algunas versiones anteriores a continuación se recomendó en el mismo archivo.

$cookieParams = array(           
    'lifetime' => $cookie->getLifetime(),           
    'path'     => $cookie->getPath(),           
    //'domain'   => $cookie->getConfigDomain()           
    //'secure'   => $cookie->isSecure(),           
    //'httponly' => $cookie->getHttponly()       
);
  }*/

Incluso después de eso, no pude iniciar sesión en admin. Es como era. ¿Alguien se enfrentó a este problema? ¿Hay alguna otra solución a este problema?

(Intenté borrar el caché y la sesión a través de ftp).


¿podría borrar el caché / cookie del navegador y volver a intentarlo?
alamelu

Copie los archivos principales app/code/local/Mage/Core..blahblahpara editarlos, de modo que Magento anule el archivo principal. También use git para el control de versiones, es un regalo del cielo.
Chris K


1
Si está utilizando Chrome, presione F12> Recursos> Cookies> Haga clic con el botón derecho en su dominio> Borrar.
rybo111

Respuestas:


122

Deje de modificar el código principal de esa manera: puede resolver temporalmente un problema, pero puede crear problemas futuros que serán casi imposibles de rastrear.

Hay una serie de problemas diferentes que causan el comportamiento de inicio de sesión de administrador sin errores que está viendo, pero todos vuelven a Magento al no poder configurar o leer la cookie de sesión. Magento usa sesiones para pasar mensajes de error entre páginas, es por eso que no ve un mensaje de error. Magento también usa sesiones para almacenar el valor "está conectado", por lo que no establecer sesiones también causa el comportamiento del error principal.

Las posibles causas incluyen

  • La hora de la computadora local frente a la hora del servidor no coincide, lo que provoca la invalidación instantánea de las cookies. Asegúrese de que la hora de su servidor sea correcta.

  • Permisos incorrectos en var/session, evitando que los archivos de sesión se guarden

  • Configuración incorrecta de la base de datos / redis / otro almacenamiento de sesión, evitando guardar valores de sesión

  • Un módulo crea instancias de sesiones a tiempo , evitando que se establezcan los nombres de sesión correctos

  • Eres un desarrollador que usa múltiples URL y tienes múltiples dominios de cookies

  • Otro desarrollador ha modificado de alguna manera app\code\core\Mage\Core\Model\Session\Abstract\Varien.php, creando un error difícil de rastrear

  • El dominio de cookie en System -> Configuration -> Web -> Session Cookie Managementno coincide con el dominio del sitio real.

  • Está utilizando localhostcomo dominio de servidor y está utilizando una versión de webkit que tiene problemas / errores al configurar las cookies localhosten algunas situaciones.

La solución a corto plazo es simplemente eliminar su cookie para el dominio. Eso suele ser suficiente para resolver el problema. Si persiste, descubra cuál de los motivos anteriores es el motivo de su error y tome medidas para solucionarlo (corregir permisos, etc.)


77
Puede utilizar el comando sys: check de n98-magerun para encontrar problemas con el dominio de cookies y la url base. magerun.net/quick-tip-find-login-issues-with-syscheck-command
cmuench

1
@ Alan Storm, gracias por la explicación clara. Resolví mi problema. En mi caso, el motivo del problema es el tercero.
SIBHI S

44
En mi caso, no había suficiente espacio en disco en el servidor. Por lo tanto, es posible que desee agregar esto como una posible causa.
Simon

@cmuench Ejecuto ese comando y no entiendo los resultados: Tienda BaseURL no segura no válida: predeterminado Nombre de host incorrecto configurado. El nombre de host debe contener un punto ✖ Tienda BaseURL no segura no válida: francés Nombre de host incorrecto configurado. El nombre de host debe contener un punto ✖ Tienda BaseURL no segura no válida: sot_eng Nombre de host incorrecto configurado. El nombre de host debe contener un punto ✖ Tienda BaseURL no segura no válida: sot_fra Nombre de host incorrecto configurado. El nombre de host debe contener un punto ✔ Dominio de cookies (seguro) de la tienda: predeterminado OK - Sin dominio configurado Todos los dominios de cookies se ven igual Ok y Sin dominio establecido
Denisa

@Denisa Tendrás un poco más de suerte si intentas hacer eso como una nueva pregunta.
Alan Storm

33

Tengo los mismos síntomas en algunas instalaciones de Magento (no solo 1.9). En mi caso, solo ocurre en Chrome. Estoy solucionando esto iniciando sesión en Firefox / Safari / Opera y cambiando 'Usar solo HTTP' a 'No' en 'Administración de cookies de sesión' de la configuración 'Web'.

Vea la captura de pantalla del backend de Magento con la configuración de cookies


3
Esto me ayudó a ejecutar mi entorno de desarrollo en Chrome, pero recuerde no utilizar esta configuración en la producción, ya que abre una clase completa de vulnerabilidades de seguridad.
Stephen Crosby

¿Dónde está la sección Gestión de cookies de sesión?
Aryeh Armon

1
También revise su dominio de cookies: estaba desarrollando localmente y resultó ser mi problema.
Phil Birnie

¡Me ayudo mucho! Nunca supe que esto solo sucede en Chrome. ¡Jaja!
jehzlau

44
Para establecer Use HTTP onlyque Nono tienen acceso panel de administración. Puede iniciar directamente esta consulta SQL: ACTUALIZAR __DATABASE_NAME__. core_config_dataSET value= '0' DONDE core_config_data. path= 'web / cookie / cookie_httponly';
Nolwennig

11

Yo tuve este problema también. Las sesiones resultantes no se pudieron escribir var/session, aunque el directorio en sí está configurado en 0777. Magento creó archivos de sesión, pero todos permanecieron cero bytes.

Cambiando el almacenamiento de sesión desde filesque dbresolvió el problema para mí.


¡esto funciona! No entiendo por qué Magento no escribe las sesiones y la memoria caché en los archivos. Los permisos son correctos!
Michelangelo

Si recuerdo mi situación, era que el disco estaba lleno o que el directorio de la sesión tenía demasiados archivos.
Giel Berkers

¡¡Esta funciona para mí!!
Ner

En mi caso: cambiar el almacenamiento de sesión de db a archivos resolvió el problema.
akgola

7
  1. Abra su directorio de instalación de Magento. Localice y abra el archivo index.php.
  2. Buscar error_reporting (E_ALL | E_STRICT); código.
  3. Comenta así:

    /*error_reporting(E_ALL | E_STRICT);*/

  4. Y use el siguiente código en su lugar:

    error_reporting(E_ALL);

    $_SERVER['MAGE_IS_DEVELOPER_MODE'] = true;

  5. Descomente quitando el signo #, para que se vea así:

    ini_set('display_errors', 1);

  6. Guarde este archivo y cárguelo en el servidor. Vuelva a cargar la página de su sitio web para ver los errores.


6

Otra posible razón: el disco duro / volumen / cuota está lleno y, por lo tanto, los datos de la sesión no se pueden escribir en el disco. Puede parecer poco probable, pero me pasó la segunda vez y me tomó un tiempo averiguarlo.

No tengo suficiente reputación para comentar, pero @Alan Storm, tal vez quieras incluir esto en tu excelente lista.


6

Recientemente tuve el mismo problema y un simple truco funcionó para mí. También esto es para personas que no pueden acceder al panel de control en Google Chrome . Si puede trabajar en Mozilla Firefox, hágalo porque supongo que este problema no es persistente en Mozilla firefox.

Entonces la solución para Chrome es:

Ir a Sistema-> Configuración-> Web . Expanda la pestaña No seguro y Seguro . Cambie la URL base a http://127.0.0.1/[Your folder name]si está utilizando localhost o cámbiela a la URL de su sitio a través de la cual accede a la interfaz. Tuve que iniciar sesión dos veces para acceder al Panel, ya que cuando ingresé los detalles por primera vez, simplemente se actualiza y vuelve a la misma página que usted mencionó como bucle.


5

Abra su phpMyAdmin desde su host, intente una vez este comando sql.

Ejecute este SQL:

SET FOREIGN_KEY_CHECKS=0;
UPDATE core_store SET store_id = 0 WHERE code='admin';
UPDATE core_store_group SET group_id = 0 WHERE name='Default';
UPDATE core_website SET website_id = 0 WHERE code='admin';
UPDATE customer_group SET customer_group_id = 0 WHERE customer_group_code='NOT LOGGED IN';SET FOREIGN_KEY_CHECKS=1;

Ahora el administrador puede iniciar sesión.

Por favor sigue esto:

La página de administración muestra 404 páginas no encontradas


1
no olvide abrir en una ventana anónima u otro navegador para eliminar sesiones
Martin

3

Tuve el mismo problema y lo resolví eliminando todos los archivos en / var / session. ¡Creo que es porque hay demasiadas sesiones en Magento!


3

La lista de tormentas de alarmas es correcta y detallada. Aquí hay un par de casos adicionales.

  1. En vagabundo, verifique también el permiso de la var/sessionmáquina host
    (problemas de montaje)
  2. Compruebe si su disco está lleno o si hay demasiados archivos en var / session
  3. Ejecutar n98-magerun.phar sys:check(detecta problemas, incluido el dominio de cookies)
  4. Cambie la sesión a la base de datos editando local.xml. Descartará la mayoría de los problemas de permisos mediante el uso de Insidie<global>

    <session_save><![CDATA[db]]></session_save>

También puede variar las extensiones de terceros (firewall / extensiones de seguridad), por ejemplo, https://github.com/paimpozhil/MageFirewall/blob/master/app/code/community/MageFirewall/Firewall/Model/Observer.php#L53 lo coloca en la lista negra si lo intentas demasiadas veces.

Puede suceder si su sesión originalmente no funciona por problemas de permisos, pero luego continúa fallando incluso después de solucionar el problema original

En su caso particular, vigile el admin_session_user_login_successevento ya que la mayoría de los módulos de seguridad / firewall usan este evento. Preste especial atención si los $_SESSION['admin']observadores restablecen la variable


2

También es importante que tenga una clave de formulario presente, de lo contrario su formulario no se procesará.

<?php echo $this->getBlockHtml('formkey'); ?>

2

Una solución simple a este problema es usar http://127.0.0.1 como nombre de host en lugar de localhost.

Dado que el problema es que no puede iniciar sesión en su administrador, debe cambiar las URL base seguras y no seguras en la tabla de la base de datos: core_config_data

Esto también hará que su baseurl valide con el sistema n98-magerun: compruebe


2

Si está desarrollando localhosty ha configurado o cambiado su nombre de dominio a localhost, actualice en su lugar los core_config_datanombres de dominio de la tabla de la base de datos 127.0.0.1. P.ejUPDATE core_config_data SET value="http://127.0.0.1/magento/" WHERE path="web/unsecure/base_url";


2

Además, puede actualizar la contraseña en la base de datos si todo lo anterior no funcionó y necesita acceso desesperado:

UPDATE admin_user SET password=CONCAT(MD5('qXpassword'), ':qX') WHERE username=‘user’;

Reemplace las palabras de usuario y contraseña de acuerdo a sus necesidades.


2

En primer lugar, intente borrar su caché, creo, y si esto no funciona, intente hacer chmod 700 en su carpeta var.


1

Puede cambiar su navegador puede ser este trabajo para mí. Cuando aparece este error, he cambiado el navegador Chrome a Firefox y funciona.


0

Lo mismo sucedió conmigo hace un tiempo y mi problema surgió de la sesión. No tenía suficiente espacio en el DISCO para crear las sesiones y el caché var/. Quité algunas cosas y todo funcionó después. Quizás ayude a alguien.

Salud


0

Intente borrar su caché vaciando la carpeta "var / cache" y "var / session", esto lo resolvió para mí.

También tuve que reiniciar el servidor web después de una vez.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.