En Magento 1.x, el tiempo de espera de la sesión de back-end se estableció a través de:
Backend -> System -> Configuration -> Admin -> Security -> Session Lifetime (seconds)
Inicialmente, mi pregunta era cómo configurar esto en Magento 2.0, pero aparentemente hay diferencias entre Magento 2.0 y Magento 2.1
Para Magento 2.0: Arkadii Chyzhov ha señalado cómo configurar esto (ver más abajo).
Para Magento 2.1: fschmengler ha sugerido una solución (ver más abajo).
Sin embargo, M 2.1 parece no proporcionar una solución sencilla a través del backend. ¿Alguien puede encontrar una solución adicional para M 2.1?
Verifique la captura de pantalla de la imagen adjunta para comprender mejor el proceso de administración.
Vaya a Tiendas-> Configuración-> Configuración-> Avanzado-> Admin-> Seguridad-> Duración de la sesión de administración (segundos)
Y verifique la captura de pantalla.
fuente
Solución para Magento 2.1+
Desde Magento 2.1, la duración de la sesión de administrador es siempre "sesión", es decir, hasta que se cierra el navegador. Esta
ha sidopodría haber sido introducido por razones de seguridad.El código relevante está en
Magento\Backend\Model\Session\AdminConfig
:Si desea cambiar este comportamiento, puede agregar un complemento para esta clase con el siguiente método de interceptor:
Donde
$this->scopeConfig
debería ser una instancia de\Magento\Framework\App\Config\ScopeConfigInterface
, inyectado a través del parámetro constructor.De esta forma, la duración de la cookie se usa desde la configuración, al igual que en la interfaz.
Tenga en cuenta que la configuración en Tiendas> Configuración> Avanzado> Seguridad de administrador> Sesión de por vida ya no tiene ningún efecto en las cookies. Se utiliza para determinar la duración de la sesión de Redis, por lo que si aumenta la duración de la cookie, también debe aumentar este valor.
fuente
setCookieLifetime
, un método público con parámetrosUna nota aquí, la respuesta aceptada funciona, sin embargo, magento 2 usa la carpeta php predeterminada para almacenar archivos de sesión, si tiene esto configurado en php:
entonces esto se agrega al sistema cron mediante la instalación de php.
Entonces puedes
gc_maxlifetime
en php.ini (ya que este será el límite superior)fuente
Otra solución sin modificar ninguna configuración es instalar cualquiera
auto refresh addon
para su navegador y configurar su tiempo (60 segundos).Se actualizará automáticamente la página por cada 6o segundos, lo que evita que la vida útil de la sesión caduque y podemos comenzar a trabajar en otra pestaña.
Solía
Easy Auto Refresh
y funciona bien para mí.fuente
Si está utilizando varias máquinas virtuales / servidores para web y db y el tiempo no está sincronizado, también causó el problema.
Por lo tanto, si todas las opciones anteriores no funcionan, verifique la marca de tiempo / fecha de los dos servidores cuando esté utilizando varios servidores para web y db.
fuente
No sé por qué, pero para algunos de nosotros, configurar la duración de la sesión de administración desde el backend no funciona, así que encontré un par de soluciones:
En php.ini, cambie session.gc_maxlifetime de 1440 a la cantidad de segundos que desee. (Esta solución funcionó para mí, probada en magento 2.2.0 y 2.2.1)
En .htaccess agregue "php_value session.gc_maxlifetime 28800" o la cantidad de segundos que desee.
Al configurar manualmente la vida útil. Vaya a vendor / magento / module-encryption-key / etc / config.xml y cambie de 900 a la cantidad de segundos que desee.
Espero que una de estas soluciones también funcione para otros.
fuente