Rozwiązanie dla Magento 2.1+
Od Magento 2.1 czas trwania sesji administratora to zawsze „sesja”, tj. Do czasu zamknięcia przeglądarki. Tobył mógł zostać wprowadzony ze względów bezpieczeństwa.
Odpowiedni kod znajduje się w Magento\Backend\Model\Session\AdminConfig
:
/**
* Set session cookie lifetime to session duration
*
* @return $this
*/
protected function configureCookieLifetime()
{
return $this->setCookieLifetime(0);
}
Jeśli chcesz zmienić to zachowanie, możesz dodać wtyczkę do tej klasy za pomocą następującej metody przechwytywacza:
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];
}
Gdzie $this->scopeConfig
powinna być instancja \Magento\Framework\App\Config\ScopeConfigInterface
, wstrzykiwana przez parametr konstruktora.
W ten sposób czas życia pliku cookie jest wykorzystywany z konfiguracji, podobnie jak w interfejsie użytkownika.
Pamiętaj, że konfiguracja w Sklepach> Konfiguracja> Zaawansowane> Bezpieczeństwo administratora> Czas życia sesji nie ma już wpływu na pliki cookie! Służy do określania czasu życia sesji Redis, więc jeśli wydłużysz czas życia ciasteczka, powinieneś również zwiększyć tę wartość.