2015-04-13 3 views
1

У меня проблема с регистрацией пользователя (помните). Я установил Джанго-Session-безопасности и настроены следующие параметры:Проблема с сеансом Django (django-session-security)

#SESSION SECURITY SETTINGS 
SESSION_SECURITY_WARN_AFTER = 540 
SESSION_SECURITY_EXPIRE_AFTER = 600 
SESSION_EXPIRE_AT_BROWSER_CLOSE = True 
SESSION_COOKIE_DOMAIN = '.domain.com' 

Теперь, когда пользователь входит в систему и имеет «запомнить меня» галочкой я переопределить «SESSION_EXPIRE_AT_BROWSER_CLOSE» настройка с помощью этого:

#Creating the session (no expire/expire) based on choice 
if request.POST.get('checkbox', None): 
#setting the cookie for a week and overriding the expire at browser close. 
#session timing will still be in place. 
    request.session.set_expiry(604800) 
    settings.SESSION_EXPIRE_AT_BROWSER_CLOSE = False 
else: 
    #Session will expire at browser close. 
    #session timing will still be in place. 
    pass 
login(request,user) 

Я вижу, что cookie хранится с правильной датой истечения срока действия, но когда я закрываю браузер в течение 15-20 минут, сеанс исчезает.

Я делаю что-то неправильно?

Благодарим за помощь!

David

+0

Вы не можете переопределять настройки для каждого запроса таким образом. –

+0

Спасибо, что было бы правильным способом по-прежнему контролировать продолжительность сеанса и иметь возможность помнить меня? – Dave

ответ

2

Вы добавили SESSION_EXPIRE_AT_BROWSER_CLOSE = True в файле настроек и settings.SESSION_EXPIRE_AT_BROWSER_CLOSE = False в вашем коде иногда это может быть создание конфликтов.

+0

Безопасность сеанса Django требует, чтобы параметр был истинным для предупреждения об окончании сеанса и т. Д. ... – Dave

+0

Я отобрал SESSION_EXPIRE_AT_BROWSER_CLOSE = Истина в настройках и, похоже, исправила проблему. – Dave

+0

Если ответ исправлен, вы выпускаете его как правую (это как работает SO: D) – Zealous

Смежные вопросы