Magento के 2 बैकएंड सत्र का समय


53

Magento में 1.x बैकएंड सेशन का समय सेट किया गया था:
Backend -> System -> Configuration -> Admin -> Security -> Session Lifetime (seconds)

प्रारंभ में, मेरा सवाल यह था कि इसे Magento 2.0 में कैसे सेट किया जाए, लेकिन जाहिर तौर पर Magento 2.0 और Magento 2.1 के बीच मतभेद हैं

मैगेंटो 2.0 के लिए: अर्कादी चिज़ोव ने बताया है कि इसे कैसे सेट किया जाए (नीचे देखें)।

Magento 2.1 के लिए: fschmengler ने एक समाधान सुझाया है (नीचे देखें)।

हालांकि, एम 2.1 बैकएंड के माध्यम से एक सीधा समाधान प्रदान नहीं करता है। क्या कोई एम 2.1 के लिए अतिरिक्त समाधान के साथ आ सकता है?

जवाबों:


82

स्टोर> सेटिंग्स> कॉन्फ़िगरेशन> उन्नत> व्यवस्थापक> सुरक्षा> व्यवस्थापक सत्र आजीवन (सेकंड)

इसके अलावा इस पैरामीटर को सीधे डेटाबेस में सेट करने की संभावना है, बस पथ के तहत एक मूल्य डालें

व्यवस्थापक / सुरक्षा / session_lifetime

तालिका में core_config_data

अपडेट करें

Magento 2.1 व्यवस्थापक कुकी का जीवनकाल = स्टोर> सेटिंग्स> कॉन्फ़िगरेशन> उन्नत> व्यवस्थापक> सुरक्षा> व्यवस्थापक सत्र आजीवन (सेकंड) या जब तक उपयोगकर्ता ब्राउज़र बंद नहीं करता है

चूंकि Magento 2.1 व्यवस्थापक कुकी के लिए "ब्राउजर क्लोज पर समाप्त हो रहा है" के लिए जीवनकाल का परिचय देता है, साथ में मूल्य Stores >Settings > Configuration > Advanced > Admin > Security > Admin Session Lifetime (seconds)। इसका मतलब है कि, उस सत्र का जीवन समय Stores > Settings > Configuration > Advanced > Admin > Security > Admin Session Lifetime (seconds)एक ब्राउज़र बंद होने पर या उसके बराबर होता है।

या आप व्यवस्थापक कुकी के लिए एक नया मान सेट कर सकते हैं, जैसे कि fschmengler के उत्तर में प्रस्तावित है


क्या आप हमारी M2 वेबसाइट पर स्तरित नेविगेशन की कार्यक्षमता को समायोजित करने में रुचि रखते हैं?
एल्स डेन Iep

@ElsdenIep pls। प्रोफाइल में मेरी संपर्क जानकारी प्राप्त करें
अर्कादी चिज़ोव

क्या आप जानते हैं कि उस मान के लिए डेटाबेस में कॉलम क्या है, इसलिए मैं इसे प्रोग्रामेटिक रूप से बदल सकता हूं?
जोजमैन

मैंने इसे 50400 पर सेट किया है, लेकिन यह लगभग 20 मिनट के बाद भी लॉग आउट होता है ....
OZZIE

@ अरकडीसीझोव नीचे मेरा जवाब देखें :)
OZZIE

16

व्यवस्थापक प्रक्रिया की बेहतर समझ के लिए संलग्न छवि स्क्रीनशॉट की जाँच करें।

स्टोर्स पर जाएं-> सेटिंग्स-> कॉन्फ़िगरेशन-> एडवांस-> एडमिन-> सिक्योरिटी-> एडमिन सेशन लाइफटाइम (सेकंड)

और स्क्रीनशॉट चेक करें। यहाँ छवि विवरण दर्ज करें


10

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, कंस्ट्रक्टर पैरामीटर के माध्यम से इंजेक्ट किया जाना चाहिए ।

इस तरह कुकी जीवनकाल का उपयोग कॉन्फ़िगरेशन से किया जाता है, जैसे कि दृश्यपटल में।

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


मैं सोच रहा था कि क्या आप इस सुरक्षा कारण को समझा सकते हैं। मेरे विचार से, व्यवस्थापक कुकी को जीवनकाल में 0 पर सेट करना, विसंगति लाता है और स्पष्ट व्यवहार नहीं, अगर हम 'व्यवस्थापक / सुरक्षा / सत्र_ लाइफटाइम' का उपयोग कर रहे हैं, जो व्यवस्थापक सत्र के जीवन काल को परिभाषित करता है, और जो कुकी जीवनकाल पर 2.1 से निर्भर करता है।
अर्कादि च्योहोव

1
मैंने यह मान लिया कि इस मामले को रोकना है कि एक व्यवस्थापक "लॉग आउट" के बिना विंडो बंद कर देता है और किसी भी व्यक्ति को उसी पीसी तक पहुंच पहले से ही लॉग इन है। यह एक बड़ा खतरा नहीं है और मैं आपसे सहमत हूं कि यह एक बुरा निर्णय है। इस "सुविधा" को इस गैर स्पष्ट बनाने के लिए।
फैबियन शेंगलर

लेकिन मैंने अब ज़िम्मेदार कमेटी की तलाश की और यह पाया: github.com/magento/magento2/commit/… "MAGETWO-49092: व्यवस्थापक लॉगिन पृष्ठ पर अमान्य फ़ॉर्म कुंजी" - यह एक और बग को छिपाने के लिए वर्कअराउंड की तरह लगता है या कम आकस्मिक और कम से कम अनिर्दिष्ट दुष्प्रभाव।
फेबियन शेंगलर

वहाँ अधिक होना चाहिए, क्योंकि मेरा सत्र अभी भी मेरे ब्राउज़र को बंद किए बिना समाप्त हो रहा है।
मैट कॉसेंटिनो

1
@ वोल्वॉक्स ध्यान से देखें: प्लगइन के लिए setCookieLifetime, मापदंडों के साथ एक सार्वजनिक तरीका है
फेबियन शेंगलर

6

एक नोट यहाँ, स्वीकृत जवाब काम करता है, हालांकि magento 2 सत्र फ़ाइलों को संग्रहीत करने के लिए डिफ़ॉल्ट php फ़ोल्डर का उपयोग करता है, अगर आपके पास php में यह कॉन्फ़िगर है:

09,39 *     * * *     root   [ -x /usr/lib/php/sessionclean ] && /usr/lib/php/sessionclean

तब इसे php इंस्टॉलेशन द्वारा सिस्टम क्रोन में जोड़ा जाता है।

तो आप भी कर सकते हैं

  • उस क्रोन को निष्क्रिय कर दें
  • या बेहतर: gc_maxlifetimephp.ini में वृद्धि (क्योंकि यह ऊपरी सीमा होगी)

2

किसी भी सेटिंग्स को संशोधित किए बिना एक और समाधान auto refresh addonआपके ब्राउज़र के लिए कोई भी स्थापित है और इसका समय (60 सेकंड) निर्धारित करता है।

यह प्रत्येक 6o सेकंड के लिए पृष्ठ को स्वतः रीफ़्रेश करेगा जो सत्र जीवनकाल समाप्त होने से रोकता है और हम दूसरे टैब पर काम करना शुरू कर सकते हैं।

मैंने उपयोग किया Easy Auto Refreshऔर यह मेरे लिए ठीक काम करता है।


इस तरह के "समाधान" के साथ मूर्ख मत बनो। यह पूरी तरह से अस्वीकार्य है।
सेलियो

2

यदि आप वेब और डीबी के लिए कई वीएम / सर्वर का उपयोग कर रहे हैं और समय सिंक नहीं है, तो भी समस्या का कारण है।

इसलिए यदि ऊपर दिए गए सभी विकल्प काम नहीं करते हैं, तो जब आप वेब और db के लिए एक से अधिक सर्वर का उपयोग कर रहे हों, तब दो सीवरों की समय सीमा / तारीख की जांच करें।


1

मुझे पता नहीं क्यों, लेकिन हममें से कुछ के लिए बैकएंड से एडमिन सेशन लाइफटाइम सेट करने से काम नहीं चलता, इसलिए मुझे कुछ समाधान मिले:

  1. Php.ini change session.gc_maxlifetime को 1440 से जो भी सेकंड में आप चाहें। (इस समाधान ने मेरे लिए काम किया, मैगेंटो 2.2.0 और 2.2.1 पर परीक्षण किया गया)

  2. .Htaccess में "php_value session.gc_maxlifetime 28800" या जो भी कुछ सेकंड की इच्छा हो, जोड़ें।

  3. मैन्युअल रूप से जीवनकाल सेट करके। पर जाएं विक्रेता / Magento / मॉड्यूल-एन्क्रिप्शन कुंजी / etc / config.xml 900s से सेकंड में चाहे जितने आप इच्छा के लिए और परिवर्तन।

आशा है कि इसका एक समाधान दूसरों के लिए भी काम करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.