gpt4 book ai didi

django - 在 django 中的特定时间后自动注销用户

转载 作者:行者123 更新时间:2023-12-04 15:23:27 25 4
gpt4 key购买 nike

我需要在特定时间后注销用户(暂时将其设为 1 分钟),因此创建了一个中间件类,如下所示

myproject/middleware.py

from datetime import datetime, timedelta
from django.contrib import auth


class AutoLogout:
def process_request(self, request):
if not request.user.is_authenticated() :
#Can't log out if not logged in
return

try:
if datetime.now() - request.session['last_touch'] > timedelta( 0, settings.AUTO_LOGOUT_DELAY * 60, 0):
auth.logout(request)
del request.session['last_touch']
return
except KeyError:
pass

request.session['last_touch'] = datetime.now()

settings.py
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'myproject.middleware.HttpErrorHandler',
'myproject.middleware.AutoLogout'
)
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'
AUTO_LOGOUT_DELAY = 1

Djagno 版本是 1.4.12
但是上面的代码不起作用,我不确定我哪里做错了,所以有人可以让我知道为什么上面的代码不起作用以及如何每 1 分钟或 5 分钟注销一个用户吗?

最佳答案

来自 Django 1.7 Session management被介绍了。在设置下,您可以添加两个参数来帮助您允许自动注销,而不必编写自己的中间件。

  • SESSION_EXPIRE_AT_BROWSER_CLOSE
  • SESSION_COOKIE_AGE

  • 希望能解答您的疑问。快乐编码!!

    关于django - 在 django 中的特定时间后自动注销用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31670231/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com