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. Estaha sido podría haber sido introducido por razones de seguridad.
El código relevante está en Magento\Backend\Model\Session\AdminConfig
:
/**
* Set session cookie lifetime to session duration
*
* @return $this
*/
protected function configureCookieLifetime()
{
return $this->setCookieLifetime(0);
}
Si desea cambiar este comportamiento, puede agregar un complemento para esta clase con el siguiente método de interceptor:
public function beforeSetCookieLifetime()
{
$lifetime = $this->scopeConfig->getValue(
\Magento\Framework\Session\Config::XML_PATH_COOKIE_LIFETIME,
\Magento\Framework\App\Config\ScopeConfigInterface::SCOPE_TYPE_DEFAULT);
return [$lifetime, \Magento\Framework\Session\Config::COOKIE_LIFETIME_DEFAULT];
}
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.