Решение для Magento 2.1+
Начиная с Magento 2.1, время существования сеанса администратора всегда является «сеансом», т.е. до тех пор, пока браузер не будет закрыт. Этотбыл возможно, был введен по соображениям безопасности.
Соответствующий код находится в Magento\Backend\Model\Session\AdminConfig
:
/**
* Set session cookie lifetime to session duration
*
* @return $this
*/
protected function configureCookieLifetime()
{
return $this->setCookieLifetime(0);
}
Если вы хотите изменить это поведение, вы можете добавить плагин для этого класса с помощью следующего метода перехватчика:
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];
}
Где $this->scopeConfig
должен быть экземпляр \Magento\Framework\App\Config\ScopeConfigInterface
, внедренный через параметр конструктора.
Таким образом, время жизни куки используется из конфигурации, как и во внешнем интерфейсе.
Обратите внимание, что конфигурация в Stores> Configuration> Advanced> Admin Security> Session Lifetime больше не влияет на файлы cookie! Он используется для определения времени жизни сеанса Redis, поэтому, если вы увеличите время жизни куки, вам также следует увеличить это значение.