2012-12-12 20 views
8

मुझे फ्लास्क-लॉगिन के साथ काम करने का प्रमाणीकरण मिला है, लेकिन ऐसा लगता है कि फ्लास्क में कुकी अवधि के लिए मैं जो भी उपयोग करता हूं, सत्र अभी भी प्रमाणित है। क्या मैं फ्लास्क-लॉगिन के लिए कॉन्फ़िगरेशन चर सेट कर रहा हूं? मैंफ्लास्क-लॉगिन: क्रोम की समाप्ति को अनदेखा कर क्रोम?

app.REMEMBER_COOKIE_DURATION = datetime.timedelta(seconds=30) 
app.config["REMEMBER_COOKIE_DURATION"] = datetime.timedelta(seconds=30) 

की कोशिश की है यहां तक ​​कि अगर मैं ब्राउज़र बंद करने, थोड़ी देर प्रतीक्षा, और एक यूआरएल है कि संरक्षित किया जाना चाहिए मारा, मैं अभी भी पहुँच सकते हैं। क्या यह this issue with chrome? से संबंधित है। अगर मैं अपनी कुकीज़ साफ़ करता हूं, तो मुझे अपेक्षित लॉगिन पेज मिलता है। यह सब मुझे सोचता है कि कुकी टाइमआउट का सम्मान नहीं किया जा रहा है।

इसके अलावा, PERMANENT_SESSION_LIFETIME फ्लास्क में क्या करता है?

उत्तर

17

REMEMBER_COOKIE_DURATION "मुझे याद रखें" कार्यक्षमता के लिए प्रयोग किया जाता है, यानी, ब्राउज़र में बंद होने पर भी उपयोगकर्ता में लॉग इन करना याद रखना कितना समय लगता है। उस के लिए अलग कुकी का उपयोग किया जाता है, जिसका नाम REMEMBER_COOKIE_NAME (डिफ़ॉल्ट रूप से remember_token) द्वारा सेट किया जा सकता है। कुछ समय (भले ही ब्राउज़र अभी भी रखा जाता है चल रहा है) के बाद समाप्त करने के लिए लॉगिन सत्र के लिए मजबूर करने के लिए, PERMANENT_SESSION_LIFETIME कहीं जहाँ आप अपने ऐप सेटिंग रखने के सेट:

PERMANENT_SESSION_LIFETIME = datetime.timedelta(minutes=30) 

और अपना लॉगिन ध्यान में रखते हुए session.permanent = True सेट:

from flask import session 

@app.route('/login') 
def login(): 
    # ... 
    if login_user(user): 
     session.permanent = True 
     return redirect(request.args.get('next') or url_for('index')) 
    # ... 
+0

धन्यवाद! सत्र जोड़ना। चालक ने चाल की! – reptilicus