2013-07-23 3 views
4

Я работаю с приложением Django, и моя текущая цель - отслеживать сеанс пользователя с помощью куки-файлов. У меня такое чувство, что, как всегда, мое понимание немного смущает насчет того, как я это делаю.Django Сессии пользователя, файлы cookie и тайм-аут

Для начала, я хотел бы управлять , как долго с тех пор, как пользователь вошел в систему, таким образом я могу успешно их вывести, если они не посетили новую страницу в «х» часах. Я не уверен, что именно является стандартным (для социальной сети).

Является ли эта информация сохранением на моем сервере? Действительно ли куки имеют какую-либо актуальность здесь? Я использовал файлы cookie раньше, чтобы хранить такие вещи, как часовой пояс пользователя, но я изо всех сил пытаюсь разобраться с тем, как я отслеживаю пользователя.

Все, что я имею в настоящее время с точки зрения пользователя, находится от пакета django.contrib.auth.

Единственное, что я действительно умею делать с точки зрения «захвата» информации пользователя, делается с помощью таких утверждений, как if request.user.is_authenticated(): (и т. Д.).

Я понимаю, что это своего рода сложный вопрос, так что я буду пытаться сузить:

Как продлить свою существующую информацию о текущем пользователе, чтобы захватить «последнего действия», так что я могу войти его/ее, если они не использовали сайт за определенный период времени? Нужно ли определить пользовательскую модель ?

Мой следующий шаг после того, как это создать другой тип пользователя, так что я чувствую, что мне нужно сделать пользовательские модели пользователей - вне только расширяя нормальную форму пользователя, чтобы сделать профиль и т.д.

Спасибо для вашего понимания,

Я знаю, что я могу сбивать с толку, когда не понимаю вещей.

Спасибо за ваше время,

Джеймс

+0

Вы прочитали это? https://docs.djangoproject.com/en/dev/topics/http/sessions/ –

+1

Да, у меня есть. Чем больше я могу слышать, тем больше я понимаю, что это такое. – jdero

ответ

7

Вы можете настроить session промежуточное программное обеспечение для выхода из пользователя автоматически, Сконфигурируйте SESSION_COOKIE_AGE, до некоторой низкой стоимости, а также обеспечить SESSION_SAVE_EVERY_REQUEST как True.

Это автоматически выйдет из системы после определенной неактивности, без необходимости расширения профиля.

SESSION_COOKIE_AGE 
Default: 1209600 (2 weeks, in seconds) 
>> The age of session cookies, in seconds. 

SESSION_SAVE_EVERY_REQUEST 
Default: False 
>> Whether to save the session data on every request. 
If this is False (default), then the session data will only be saved if it has been modified – that is, if any of its dictionary values have been assigned or deleted. 

И для создания пользовательских/расширения User профиля, Django 1.5, поставляется с configurable User model, пожалуйста, проверьте docs примеры.

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