В Magento 1.x время ожидания бэкэнд-сессии было установлено через:
Backend -> System -> Configuration -> Admin -> Security -> Session Lifetime (seconds)
Изначально у меня возник вопрос, как установить это в Magento 2.0, но, очевидно, есть различия между Magento 2.0 и Magento 2.1.
Для Magento 2.0: Аркадий Чижов указал, как это установить (см. Ниже).
Для Magento 2.1: fschmengler предложил решение (см. Ниже).
Тем не менее, M 2.1, по-видимому, не обеспечивает простое решение через бэкэнд. Кто-нибудь может придумать дополнительное решение для M 2.1?
Проверьте прикрепленное изображение на скриншоте для лучшего понимания процесса администрирования.
Перейдите в Магазины-> Настройки-> Конфигурация-> Дополнительно-> Админ-> Безопасность-> Время жизни сеанса администратора (секунды)
И проверьте скриншот.
источник
Решение для Magento 2.1+
Начиная с Magento 2.1, время существования сеанса администратора всегда является «сеансом», т.е. до тех пор, пока браузер не будет закрыт. Этот
былвозможно, был введен по соображениям безопасности.Соответствующий код находится в
Magento\Backend\Model\Session\AdminConfig
:Если вы хотите изменить это поведение, вы можете добавить плагин для этого класса с помощью следующего метода перехватчика:
Где
$this->scopeConfig
должен быть экземпляр\Magento\Framework\App\Config\ScopeConfigInterface
, внедренный через параметр конструктора.Таким образом, время жизни куки используется из конфигурации, как и во внешнем интерфейсе.
Обратите внимание, что конфигурация в Stores> Configuration> Advanced> Admin Security> Session Lifetime больше не влияет на файлы cookie! Он используется для определения времени жизни сеанса Redis, поэтому, если вы увеличите время жизни куки, вам также следует увеличить это значение.
источник
setCookieLifetime
публичного метода с параметрамиОбратите внимание, что принятый ответ работает, однако magento 2 использует папку php по умолчанию для хранения файлов сеанса, если это настроено в php:
затем это добавляется в системный cron установкой php.
Так что вы можете либо
gc_maxlifetime
в php.ini (так как это будет верхний предел)источник
Другим решением без изменения каких-либо настроек является установка любого
auto refresh addon
для вашего браузера и установка его времени (60 секунд).Он будет автоматически обновлять страницу каждые 6 секунд, что предотвращает истечение срока жизни сессии, и мы можем начать работать с другой вкладкой.
Я использовал,
Easy Auto Refresh
и это прекрасно работает для меня.источник
Если вы используете несколько виртуальных машин / серверов для сети и базы данных, а время не синхронизировано, это также вызвало проблему.
Поэтому, если все вышеперечисленные параметры не работают, проверьте отметку времени / дату двух серверов, когда вы используете несколько серверов для Интернета и БД.
источник
Я не знаю почему, но для некоторых из нас настройка времени жизни сеанса администратора из серверной части не работает, поэтому я нашел несколько решений:
В php.ini измените session.gc_maxlifetime с 1440 на любое количество секунд, которое вы пожелаете. (Это решение работало для меня, проверено на magento 2.2.0 и 2.2.1)
В .htaccess добавьте «php_value session.gc_maxlifetime 28800» или любое другое количество секунд.
Путем ручной настройки времени жизни. Перейдите в vendor / magento / module-encryption-key / etc / config.xml и измените значение с 900 на любое количество секунд, которое вы пожелаете.
Надеюсь, что одно из этих решений будет работать и для других.
источник