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
, कंस्ट्रक्टर पैरामीटर के माध्यम से इंजेक्ट किया जाना चाहिए ।
इस तरह कुकी जीवनकाल का उपयोग कॉन्फ़िगरेशन से किया जाता है, जैसे कि दृश्यपटल में।
ध्यान दें कि स्टोर> कॉन्फ़िगरेशन> एडवांस> एडवांस सिक्योरिटी> सेशन लाइफटाइम का कुकीज पर कोई प्रभाव नहीं पड़ता है! इसका उपयोग रेडिस सत्र जीवनकाल को निर्धारित करने के लिए किया जाता है, इसलिए यदि आप कुकी जीवनकाल बढ़ाते हैं, तो आपको इस मूल्य को भी बढ़ाना चाहिए।