In Magento 1.x wurde das Zeitlimit für die Backend-Sitzung wie folgt festgelegt:
Backend -> System -> Configuration -> Admin -> Security -> Session Lifetime (seconds)
Anfangs war meine Frage, wie man dies in Magento 2.0 einstellt, aber anscheinend gibt es Unterschiede zwischen Magento 2.0 und Magento 2.1
Für Magento 2.0: Arkadii Chyzhov hat darauf hingewiesen, wie dies eingestellt werden soll (siehe unten).
Für Magento 2.1 hat fschmengler eine Lösung vorgeschlagen (siehe unten).
M 2.1 scheint jedoch keine einfache Lösung über das Backend zu bieten. Kann sich jemand eine zusätzliche Lösung für M 2.1 einfallen lassen?
Überprüfen Sie den Screenshot des angehängten Bildes für ein besseres Verständnis des Administrationsprozesses.
Gehen Sie zu Stores-> Settings-> Configuration-> Advanced-> Admin-> Security-> Admin Session Lifetime (seconds)
Und überprüfen Sie den Screenshot.
quelle
Lösung für Magento 2.1+
Seit Magento 2.1 ist die Lebensdauer der Admin-Sitzung immer "Sitzung", dh bis der Browser geschlossen wird. Diese
ist gewesenwurde möglicherweise aus Sicherheitsgründen eingeführt.Der entsprechende Code befindet sich in
Magento\Backend\Model\Session\AdminConfig
:Wenn Sie dieses Verhalten ändern möchten, können Sie mit der folgenden Interceptor-Methode ein Plugin für diese Klasse hinzufügen:
Wo
$this->scopeConfig
sollte eine Instanz von sein\Magento\Framework\App\Config\ScopeConfigInterface
, injiziert über Konstruktorparameter.Auf diese Weise wird die Cookie-Lebensdauer ab der Konfiguration wie im Frontend verwendet.
Beachten Sie, dass die Konfiguration unter Stores> Configuration> Advanced> Admin Security> Session Lifetime keine Auswirkungen mehr auf die Cookies hat! Es wird verwendet, um die Lebensdauer der Redis-Sitzung zu bestimmen. Wenn Sie also die Lebensdauer der Cookies erhöhen, sollten Sie auch diesen Wert erhöhen.
quelle
setCookieLifetime
, eine öffentliche Methode mit ParameternHier ein Hinweis, die akzeptierte Antwort funktioniert, jedoch verwendet Magento 2 den Standard-PHP-Ordner zum Speichern von Sitzungsdateien, wenn Sie dies in PHP konfiguriert haben:
Dann wird dies durch die PHP-Installation zum System-Cron hinzugefügt.
Dann kannst du das auch
gc_maxlifetime
php.ini (da dies die Obergrenze ist)quelle
Eine andere Lösung, ohne die Einstellungen zu ändern, ist die Installation von any
auto refresh addon
für Ihren Browser und die Einstellung der Zeit (60 Sekunden).Die Seite wird automatisch alle 60 Sekunden aktualisiert, wodurch das Ablaufen der Sitzungslebensdauer verhindert wird und wir mit der Arbeit an einem anderen Tab beginnen können.
Ich habe verwendet
Easy Auto Refresh
und es funktioniert gut für mich.quelle
Wenn Sie mehrere VMs / Server für Web und DB verwenden und die Zeit nicht synchronisiert ist, wurde das Problem ebenfalls verursacht.
Wenn also alle oben genannten Optionen nicht funktionieren, überprüfen Sie den Zeitstempel / das Datum der beiden Server, wenn Sie mehrere Server für Web und DB verwenden.
quelle
Ich weiß nicht warum, aber für einige von uns funktioniert die Einstellung der Admin-Sitzungslebensdauer über das Backend nicht. Deshalb habe ich einige Lösungen gefunden:
Ändern Sie in der php.ini die session.gc_maxlifetime von 1440 auf die gewünschte Anzahl von Sekunden. (Diese Lösung hat bei mir funktioniert, getestet mit Magento 2.2.0 und 2.2.1)
Fügen Sie in .htaccess "php_value session.gc_maxlifetime 28800" oder eine beliebige Anzahl von Sekunden hinzu.
Durch manuelles Einstellen der Lebensdauer. Gehen Sie zu Hersteller / magento / module-encryption-key / etc / config.xml und ändern Sie den Wert von 900 auf die gewünschte Anzahl von Sekunden.
Ich hoffe, eine dieser Lösungen funktioniert auch für andere.
quelle