Я думаю, что, скорее всего, то, что делает Amazon, зависит от времени, а не от того, закрываете ли вы браузер или нет. Поэтому, скорее всего, вам следует сохранить в сеансе последний раз, когда вы видели этого пользователя. Если вы видели их более часа назад, то автоматически выйдите из системы (для этого используйте Middleware ).
request.session['lastseen'] = datetime.datetime.now()
Теперь в вашем промежуточном программном обеспечении просто будьте осторожны при выходе из системы, так как вам все еще нужно хранить их id
или username
в сеансе. Это все еще легко сделать, просто прочитайте здесь:
http://docs.djangoproject.com/en/dev/topics/auth/#how-to-log-a-user-out
Итак, в основном вы хотите выйти из системы, а затем после этого сохранить их id
или просто username
в сеансе, чтобы вы могли получить их позже. Выход из системы полностью очистит их сеанс, поэтому вам нужно обязательно добавить их id
или username
после выполнения команды logout()
. Затем, куда бы вы ни захотели получить эти данные, вы просто извлекаете их из переменных сеанса.
logout(request.user)
request.session['userid'] = request.user.id
Теперь у вас есть три возможности для пользователя: AnonymousUser без сохранения id
, AnonymousUser без сохранения id
или Аутентифицированный пользователь.
Таким образом, даже если кто-то не вошел в систему, вы все равно можете получить его id
из сеанса.