首页 > 解决方案 > django-session-timeout:如何自动断开连接(无需用户操作)

问题描述

我是 Django 的新手,并尝试使用 tierce 应用程序 django-session-timeout 实现“自动注销”它有效,但我想改善行为

会话在 settings.py 中设置的时间后过期,但没有刷新,因此它断开连接并重定向到登录页面,除非用户单击其他地方

换句话说,用户断开连接(因为用户会话过期)但不会自动重定向到登录页面 - >需要用户事件

是否可以在不编写我自己的中间件的情况下改进这一点?

设置.py

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',

    'django_session_timeout.middleware.SessionTimeoutMiddleware',
]

LOGIN_URL = 'home'
LOGIN_REDIRECT_URL = 'home'
LOGOUT_REDIRECT_URL = 'home'

SESSION_EXPIRE_SECONDS = 900  # 900 - >15 minutes = 15 * 60
SESSION_EXPIRE_AFTER_LAST_ACTIVITY = True
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
SESSION_SAVE_EVERY_REQUEST = True

标签: djangologoutsession-timeout

解决方案


推荐阅读