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_ngto your INSTALLED_APPS setting like this::INSTALLED_APPS = [ ..., "django_user_sessions_ng", ]
-
Add
django_user_sessions_ng.middleware.SessionMiddlewareto your MIDDLEWARE setting like this:MIDDLEWARE = [ ..., "django_user_sessions_ng.middleware.SessionMiddleware", ]
-
Set
SESSION_ENGINEtodjango_user_sessions_ng.backends.dbordjango_user_sessions_ng.backends.cached_dbdepending 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 migrateto create the necessary models. -
(Optional) In order to enable the location information for each session, you will need to install the package called
geoip2and download the GeoLite2 database from MaxMind or using the built-inpython manage.py download_geoip_db -k MAXMIND_LICENSE_KEYcommand (you can get theMAXMIND_LICENSE_KEYby registering at their website and registering a new license key) and set theGEOIP_PATHsetting 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.sessionsfrom theINSTALLED_APPSsetting as well asdjango.contrib.sessions.middleware.SessionMiddlewarefrom theMIDDLEWAREsetting. -
The package provides a management command
clearsessions(simply imports the one from the originaldjango.contrib.sessionspackage) 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
-uor--maxmind-geoip-download-base-urlfor thedownload_geoip_dbcommand 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_dbimplementation.
License
MIT
Project details
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_user_sessions_ng-0.1.7.tar.gz.
File metadata
- Download URL: django_user_sessions_ng-0.1.7.tar.gz
- Upload date:
- Size: 38.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.4.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13c73a2198c24f87211200579285047b82f474c6ae793c2d205bfc89a4098391
|
|
| MD5 |
3b4697261c947f11225f38189951bfcf
|
|
| BLAKE2b-256 |
c7b1a3d9b5db196bdc9d0b2ae8965f76b02568782436e12e4e1648c9f2ac9a22
|
File details
Details for the file django_user_sessions_ng-0.1.7-py3-none-any.whl.
File metadata
- Download URL: django_user_sessions_ng-0.1.7-py3-none-any.whl
- Upload date:
- Size: 12.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.4.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a9968ac5f2ca132351fb2e3566963a61b90a89a25f7a8bf3a73fdeadb2e51fb
|
|
| MD5 |
3c8d330068ee4a722af04931a939201d
|
|
| BLAKE2b-256 |
eed23e33416dfecaa3a74706c4dc2cc6f22b252c9fcded2b7ae0353d5e9195cd
|