के साथ Django "मुझे याद रखें" लॉगिन पृष्ठ पर चेक किए गए "मुझे याद रखें" विकल्प वाले उपयोगकर्ताओं के लिए लंबी कुकी लंबाई निर्धारित करने के लिए मैं मूल व्यवस्थापक लॉगिन() और प्रमाणीकरण फ़ॉर्म का पुन: उपयोग कैसे कर सकता हूं? मैं वर्तमान के माध्यम से निर्मित लॉगिन का उपयोग कर रहा urls.pyअंतर्निहित लॉगिन दृश्य और प्रमाणीकरण फ़ॉर्म
url(r'^login/$','django.contrib.auth.views.login', {'template_name': 'authentication/login.html'}, name='login'),
चेकबॉक्स के रूप में मेरे login.html में कार्यान्वित किया जाता:
<label><input name="remember_me" type="checkbox">Keep me logged in</label>
लेकिन मुझे यकीन है कि कैसे के माध्यम से उस जानकारी को पारित करने के लिए नहीं कर रहा हूँ
वर्तमान में django.contrib.auth.views.login को AuthenticationForm, अगर उपयोगकर्ता के लॉग "मुझे याद रखें" बॉक्स चुना, कुकी उम्र settings.py
SESSION_COOKIE_AGE = 360
01 में परिभाषित किया गया है
मुझे कुछ समान प्रश्न मिले लेकिन मुझे नहीं लगता कि इसे स्थापित करने के लिए एक अलग ऐप की आवश्यकता होनी चाहिए। नीचे दिए गए स्निपेट (http://djangosnippets.org/snippets/1881/) होनहार लग रहा था, लेकिन मैं केवल महीने की जोड़ी के लिए अजगर और Django कोडित है और मैं यह काम कर रहा प्राप्त करने में सक्षम नहीं था:
def login(request, *args, **kwargs):
if request.method == 'POST':
if not request.POST.get('remember_me', None):
request.session.set_expiry(0)
return auth_views.login(request, *args, **kwargs)
स्निपेट वास्तव में एक और तरीके से काम कर रहा है लेकिन मुख्य विचार अभी भी चेकबॉक्स चयन के आधार पर कुकी समाप्ति सेट करना है। – Sawwy
स्निपेट सही है, बस याद किए गए लॉगिन की समाप्ति के लिए 'SESSION_COOKIE_AGE' सेट करें, और' request'ession.set_expiry (0) 'के अंदर' 0' 'को एक-ऑफ लॉगिन की समाप्ति पर सेट करें। – okm
ठीक है, मुझे अब यह काम करने में मिला है कि डिफ़ॉल्ट सत्र की लंबाई 5 सेकंड है और मुझे याद है कि सत्र 30 है (केवल परीक्षण उद्देश्यों के लिए)। हालांकि, जब मैं set_expiry (0) का उपयोग करता हूं, तो ब्राउज़र को बंद करने पर सत्र हटाया नहीं जाता है (पूरे ब्राउजर को टैब नहीं बंद करना)। मुद्दा इसके बाद बनी हुई है: 1) django_session से हटाएं (डेटाबेस से सभी सत्र जानकारी हटाने के लिए) 2) सभी ब्राउज़र इतिहास साफ़ करें (क्रोम 25.0.1364.97)। मैं खरोंच से शुरू करता हूं लेकिन एक बार जब यह उपयोगकर्ता लॉग इन होता है, तो यह लॉग इन रहेगा। क्या मुझे कुछ और करने की ज़रूरत है? – Sawwy