2015-12-06 6 views
12

डिफ़ॉल्ट रूप से, फ्लास्क अस्थिर सत्र का उपयोग करता है, जिसका अर्थ है कि सत्र कुकी समाप्त होने पर समाप्त हो जाती है जब ब्राउज़र बंद हो जाता है। स्थायी सत्रों का उपयोग करने के लिए, जो परिभाषित समाप्ति तिथि के साथ कुकी का उपयोग करेगा, को mentioned in this question. के रूप में सेट करना चाहिए, और समाप्ति तिथि config['PERMANENT_SESSION_LIFETIME'] पर आधारित होगी।फ्लास्क स्थायी सत्र: उन्हें परिभाषित करने के लिए कहां?

मुझे आश्चर्य है कि सत्र जीवनकाल को कॉन्फ़िगरेशन फ़ाइल में परिभाषित किया गया है, फिर भी config['USE_PERMANENT_SESSION'] = True जैसे कॉन्फ़िगरेशन के माध्यम से स्थायी सत्रों के उपयोग का अनुरोध करना संभव नहीं है। लेकिन ऐसा ही हो।

मेरा प्रश्न है: यदि आप स्थायी सत्र चाहते हैं, तो उन्हें परिभाषित करने के लिए सबसे अच्छी जगह क्या है? क्या यह @app.before_request फ़ंक्शन में उल्लिखित प्रश्न में प्रस्तावित है? लेकिन इसका मतलब यह होगा कि प्रत्येक अनुरोध पर इसे फिर से स्थापित किया जाए? ऐसा लगता है कि एक बार सेट, session.permanent सत्र के अंत तक सच रहता है।

स्थायी सत्र आमतौर पर पर साइन-इन के बाद उपयोग किया जाता है, तो शायद login_user() को संसाधित करते समय उनका अनुरोध करने का सबसे अच्छा स्थान है? सभी अज्ञात पृष्ठों के लिए अस्थिर सत्र कुकीज़ का उपयोग करने के लिए सबसे अच्छी नीति है, और साइन-इन पर session.permanent = True करके स्थायी सत्रों पर स्विच करें?

और कोई सामान्य जीवन session कुकी, या remember_me कुकी पर निर्भर करता है या नहीं, इसके आधार पर एक अलग जीवनकाल निर्धारित करना चाह सकता है। इसे हासिल करने का सबसे अच्छा तरीका क्या होगा?

उत्तर

9

मुझे आश्चर्य है कि इस सवाल का जवाब नहीं दिया गया है। ऐसा लगता है कि कुछ प्रकार के कॉन्फ़िगरेशन चर SESSION_PERMANENT = True होना चाहिए। लेकिन दुर्भाग्य से ऐसा नहीं है। जैसा कि आपने बताया है कि यह करने का सबसे अच्छा तरीका है।

@app.before_request 
def make_session_permanent(): 
    session.permanent = True 
+0

यह समाधान सत्र को स्थायी रूप से संशोधित करता है –

संबंधित मुद्दे