django-everlasting-sessions

Django middleware that prevents user sessions from expiration.


License
BSD-3-Clause
Install
pip install django-everlasting-sessions==0.0.4

Documentation

django-everlasting-sessions

This Django middleware prevents user sessions from expiration.

Problem

When using django.contrib.sessions.middleware.SessionMiddleware, Django only saves the session cookie when a session is modified. On a typical site that only happens when a user logs in. In two weeks this session cookie expires and the user is prompted to login again, even if he's been actively using the site.

Solution

django-everlasting-sessions provides a middleware that will update session cookies once in a while (every day by default), provided there is some activity from the user.

Installation

pip install django-everlasting-sessions

Usage

Add the middleware to settings.py:

MIDDLEWARE_CLASSES = [
        ...
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django_everlasting_sessions.UpdateSessionMiddleware',  # Must go after SessionMiddleware
        ...
]

The rest will happen automatically.

Options

The following default is used which you can override in settings.py:

SESSION_COOKIE_REFRESH = 86400  # Interval in seconds.