Di Magento 1.x batas waktu sesi backend ditetapkan melalui:
Backend -> System -> Configuration -> Admin -> Security -> Session Lifetime (seconds)
Awalnya, pertanyaan saya adalah bagaimana mengatur ini di Magento 2.0, tetapi ternyata ada perbedaan antara Magento 2.0 dan Magento 2.1
Untuk Magento 2.0: Arkadii Chyzhov telah menunjukkan cara mengatur ini (lihat di bawah).
Untuk Magento 2.1: fschmengler telah menyarankan solusi (lihat di bawah).
Namun, M 2.1 tampaknya tidak memberikan solusi langsung melalui backend. Adakah yang bisa membuat solusi tambahan untuk M 2.1?
Periksa screenshot gambar terlampir untuk pemahaman yang lebih baik tentang proses admin.
Pergi ke Toko-> Pengaturan-> Konfigurasi-> Lanjutan-> Admin-> Keamanan-> Sesi Admin Seumur Hidup (detik)
Dan periksa tangkapan layar.
sumber
Solusi untuk Magento 2.1+
Sejak Magento 2.1 masa admin sesi selalu "sesi", yaitu sampai browser ditutup. Ini
telahmungkin telah diperkenalkan karena alasan keamanan.Kode yang relevan ada di
Magento\Backend\Model\Session\AdminConfig
:Jika Anda ingin mengubah perilaku ini, Anda bisa menambahkan plugin untuk kelas ini dengan metode interseptor berikut:
Di mana
$this->scopeConfig
harus menjadi contoh\Magento\Framework\App\Config\ScopeConfigInterface
, disuntikkan melalui parameter konstruktor.Dengan cara ini, masa pakai cookie digunakan dari konfigurasi, sama seperti di frontend.
Perhatikan bahwa konfigurasi di Toko> Konfigurasi> Tingkat Lanjut> Keamanan Admin> Session Seumur Hidup tidak lagi memiliki pengaruh pada cookie! Ini digunakan untuk menentukan seumur hidup sesi Redis, jadi jika Anda menambah umur cookie, Anda juga harus meningkatkan nilai ini.
sumber
setCookieLifetime
, metode publik dengan parameterCatatan di sini, jawaban yang diterima berfungsi namun magento 2 menggunakan folder php default untuk menyimpan file sesi, jika Anda telah mengkonfigurasi ini di php:
maka ini ditambahkan ke sistem cron oleh instalasi php.
Jadi, Anda juga bisa
gc_maxlifetime
php.ini (karena ini akan menjadi batas atas)sumber
Solusi lain tanpa mengubah pengaturan apa pun adalah menginstal apa pun
auto refresh addon
untuk browser Anda dan mengatur waktunya (60 detik).Ini akan secara otomatis me-refresh halaman untuk setiap 6o detik yang mencegah masa sesi berakhir dan kita dapat mulai bekerja pada tab lain.
Saya menggunakan
Easy Auto Refresh
dan berfungsi dengan baik untuk saya.sumber
Jika Anda menggunakan beberapa VM / server untuk web dan db dan waktu tidak disinkronkan juga menyebabkan masalah.
Jadi, jika semua opsi di atas tidak berfungsi, periksa cap waktu / tanggal dari dua pengungkit saat Anda menggunakan beberapa server untuk web dan db.
sumber
Saya tidak tahu mengapa tetapi bagi sebagian dari kita menetapkan Admin Session Lifetime dari backend tidak berfungsi, jadi saya menemukan beberapa solusi:
Di php.ini ubah session.gc_maxlifetime dari 1440 menjadi berapa pun detik yang Anda inginkan. (Solusi ini bekerja untuk saya, diuji pada Magento 2.2.0 dan 2.2.1)
Dalam .htaccess tambahkan "php_value session.gc_maxlifetime 28800" atau berapa pun jumlah detik yang Anda inginkan.
Dengan secara manual mengatur masa pakai. Buka vendor / magento / module-enkripsi-key / etc / config.xml dan ubah dari 900s menjadi berapa detik yang Anda inginkan.
Semoga salah satu solusi ini akan bekerja untuk orang lain juga.
sumber