Solução para Magento 2.1+
Desde o Magento 2.1, a vida útil da sessão de administrador é sempre "sessão", ou seja, até o navegador ser fechado. estefoi pode ter sido introduzido por razões de segurança.
O código relevante está em Magento\Backend\Model\Session\AdminConfig
:
/**
* Set session cookie lifetime to session duration
*
* @return $this
*/
protected function configureCookieLifetime()
{
return $this->setCookieLifetime(0);
}
Se você deseja alterar esse comportamento, pode adicionar um plug-in para esta classe com o seguinte método interceptador:
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];
}
Onde $this->scopeConfig
deve ser uma instância de \Magento\Framework\App\Config\ScopeConfigInterface
, injetado via parâmetro construtor.
Dessa forma, a vida útil do cookie é usada na configuração, assim como no frontend.
Observe que a configuração em Lojas> Configuração> Avançado> Segurança do administrador> Tempo de vida da sessão não tem mais efeito sobre os cookies! Ele é usado para determinar a vida útil da sessão Redis; portanto, se você aumentar a vida útil do cookie, também deverá aumentar esse valor.