2013-09-28 5 views
5

मैं फ्लास्क सीखने की कोशिश कर रहा हूं, और जिस तरह से फ्लास्क-लॉगिन एक्सटेंशन। मैं अपेक्षित के रूप में बुनियादी प्रमाणीकरण कार्य कर सकते हैं। जिस मुद्दे पर मुझे स्टंप किया गया है, वह फ़ायरफ़ॉक्स में "पिछली बार मेरी विंडो और टैब दिखाएं" सेटिंग में शामिल है और क्रोम में "जहां मैंने छोड़ा था जारी रखें" सेटिंग शामिल है। मैंने इस साइट पर और अन्य जगहों पर किए गए सभी शोधों से संकेत मिलता है कि इन सेटिंग्स को केवल खुले टैब के लिए काम करना चाहिए। इसलिए यदि आप प्रमाणीकृत हैं और फिर टैब को बंद करते हैं, और फिर ब्राउज़र को बंद करते हैं, तो ब्राउजर को ब्राउज़र के बंद होने पर खोले गए टैब के लिए केवल सत्र-केवल कुकीज़ को पुनर्स्थापित करना चाहिए। हालांकि फ़ायरफ़ॉक्स और क्रोम दोनों के साथ सत्र-केवल कुकी अभी भी सक्रिय है जब ब्राउज़र फिर से शुरू होता है और मैं उस पृष्ठ पर नेविगेट करता हूं जिसे @login_required के रूप में चिह्नित किया जाता है। मुझे यह भी जिक्र करना चाहिए कि मैं login_user को गलत तरीके से गुजर रहा हूं जैसे तर्क: login_user(user, remember=False)फ्लास्क-लॉगिन: टैब बंद होने पर सत्र कुकी को निकालने के लिए फ़ायरफ़ॉक्स/क्रोम को कैसे बल दें?

मैंने फ्लास्क-लॉगिन एक्सटेंशन के साथ ताजा लॉगिन के विचार के साथ खेला है कि ब्राउज़र बंद करने से पहले टैब को बंद करना निश्चित रूप से चिह्नित होगा सत्र के रूप में सत्र, लेकिन यह नहीं करता है। मैं login_fresh() के मान की जांच करता हूं जो लॉगिन ताजा होने पर सत्य लौटाता है, और यह अभी भी सत्य लौटाता है।

मुझे पता चला कि session.permanent = True का उपयोग करके किसी दिए गए समय के बाद लॉगिन समाप्त करने का तरीका और फिर app.permanent_session_lifetime = 'so many minutes/seconds' सेट करना, जो पूरी तरह से काम करता है, लेकिन मैं नहीं चाहता हूं।

मैं इस तथ्य के साथ रह सकता हूं कि फ़ायरफ़ॉक्स/क्रोम खुले टैब के लिए सत्र कुकीज़ याद रखेगा, लेकिन मुझे समझ में नहीं आता है कि ब्राउज़र को बंद करने से पहले टैब बंद होने पर भी मुझे मेरी साइट के लिए सत्र कुकीज़ याद क्यों है । क्या यह अपेक्षित व्यवहार है? जब मैं पहली बार टैब बंद करता हूं तो ब्राउज़र कुकी को मेरी साइट के लिए हटाया जाना उचित है?

उत्तर

3

क्या यह अपेक्षित व्यवहार है? जब मैं पहली बार टैब बंद करता हूं तो ब्राउज़र कुकी को मेरी साइट के लिए हटाया जाना उचित है?

स्पष्ट रूप से हाँ, यह व्यवहार की उम्मीद है, और आप ऐसी चीज की अपेक्षा करने के लिए उचित नहीं हैं। आपके द्वारा देखे जा रहे व्यवहार ब्राउज़र के "सत्र पुनर्स्थापना" कार्यक्षमता को लागू करने के तरीके में जानबूझकर डिज़ाइन निर्णय लेते हैं।

  • इस Firefox bug from 2009(eternalsession) सत्र बहाल अत्यधिक सत्र कुकी उम्र कई डुप्लिकेट और कोई समाधान नहीं है कि में परिणाम कर सकते हैं।
  • या इस Chromium bug from 2012सत्र कुकी साफ़ नहीं की जब क्रोम प्रक्रियाओं WontFix

की स्थिति के साथ बंद कर दिया तो, संक्षेप में, मैं वहाँ कुछ भी आप सर्वर साइड से इस बारे में क्या कर सकते हैं नहीं लगता है, कोई कोई फर्क नहीं पड़ता कि कितना भयानक फ्लास्क :(

1

क्या दिन कहता है कि स्पॉट ऑन और your expectations should be correct है। फिर भी, एक काम-आसपास हो सकता है।

आप एक छोटे से जीवनकाल (PERMANENT_SESSION_LIFETIME) के साथ एक स्थायी सत्र का उपयोग कर सकते हैं और प्रत्येक अनुरोध (SESSION_REFRESH_EACH_REQUEST) पर अपने जीवनकाल को रीफ्रेश कर सकते हैं।

मुझे लगता है कि यह एक नया कॉन्फ़िगरेशन (0.10 आईआईआरसी) है।

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