Django User Sessions NG - a Django package to manage multiple user sessions.
Project description
django-user-sessions-ng
django-user-sessions-ng
is a Django package which allows users to have multiple sessions and provides session management through the Django admin interface.
This project is originally inspired by (and based on) the following projects:
The changes made in this repo, however, are very minimal, and the package itself is more like an adaptation for personal use.
Features
- Multiple sessions per user.
- Session management through the Django admin interface.
- Cached session data for faster access.
- Device information for each session.
- IP address for each session.
- (Optional) Location information for each session.
Installation
-
Install the package using your favorite package manager, for example pip:
pip install django-user-sessions-ng
-
Add
django_user_sessions_ng
to your INSTALLED_APPS setting like this::INSTALLED_APPS = [ ..., "django_user_sessions_ng", ]
-
Add
django_user_sessions_ng.middleware.SessionMiddleware
to your MIDDLEWARE setting like this:MIDDLEWARE = [ ..., "django_user_sessions_ng.middleware.SessionMiddleware", ]
-
Set
SESSION_ENGINE
todjango_user_sessions_ng.backends.db
ordjango_user_sessions_ng.backends.cached_db
depending on your preferences and whether you need cached db in your Django settings file:SESSION_ENGINE = "django_user_sessions_ng.backends.db"
or
SESSION_ENGINE = "django_user_sessions_ng.backends.cached_db"
-
Run
python manage.py migrate
to create the necessary models. -
(Optional) In order to enable the location information for each session, you will need to install the package called
geoip2
and download the GeoLite2 database from MaxMind or using the built-inpython manage.py download_geoip_db -k MAXMIND_LICENSE_KEY
command (you can get theMAXMIND_LICENSE_KEY
by registering at their website and registering a new license key) and set theGEOIP_PATH
setting in your Django settings file to the path of the database file or directory containing multiple databases.For example:
GEOIP_PATH = "/path/to/GeoLite2"
or
GEOIP_PATH = "/path/to/GeoLite2/GeoLite2-City.mmdb"
Notes
-
Since this package replaces the functionality of the default Django session application (django.contrib.sessions), it is recommended to remove the
django.contrib.sessions
from theINSTALLED_APPS
setting as well asdjango.contrib.sessions.middleware.SessionMiddleware
from theMIDDLEWARE
setting. -
The package provides a management command
clearsessions
(simply imports the one from the originaldjango.contrib.sessions
package) which can be used to clear expired sessions. This command can be run using the following command:python manage.py django_user_sessions_ng clearsessions
-
If for some reason the MaxMind base url for download changes, and the package doesn't get updated in time, there's an optional argument
-u
or--maxmind-geoip-download-base-url
for thedownload_geoip_db
command which can be used to specify the base url for downloading the database files.For example:
python manage.py download_geoip_db -k MAXMIND_LICENSE_KEY -u "https://download.maxmind.com/app/geoip_download"
Credits
- Thanks to JazzBand for their original django-user-sessions implementation.
- Thanks to QueraTeam for their original django-qsessions, particularly for their tests and
cached_db
implementation.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django_user_sessions_ng-0.1.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | d50ae48b40552b2a85fa5a167838b9337c71c53b5992859570d146305143202a |
|
MD5 | 7956375f458ba80939ad721553b82d6d |
|
BLAKE2b-256 | 993c22d0a89d532dc8045b5ca3f76a6d7c627322646573a805bda61b5e4f51a1 |
Hashes for django_user_sessions_ng-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d4db25d0ae1c4ca65d2770b3a5e8d253aa74dd16f308f07fc67d054eec54706 |
|
MD5 | 77eed38d04113c6289d6ca5962b2a243 |
|
BLAKE2b-256 | 61bfd24a40a365477c7dbdc526452fb41485c6add86e53df3da17bcc83f4f9e8 |