โซลูชันสำหรับ 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
ฉีดผ่านพารามิเตอร์คอนสตรัค
วิธีนี้อายุการใช้งานคุกกี้จะถูกใช้จากการกำหนดค่าเช่นเดียวกับในส่วนหน้า
โปรดทราบว่าการกำหนดค่าในร้านค้า> การกำหนดค่า> ขั้นสูง> ความปลอดภัยของผู้ดูแลระบบ> อายุการใช้งานเซสชันจะไม่มีผลกับคุกกี้อีกต่อไป! มันถูกใช้เพื่อกำหนดอายุการใช้งาน Redis ดังนั้นหากคุณเพิ่มอายุการใช้งานคุกกี้คุณควรเพิ่มค่านี้ด้วย