-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use README.md for GitHub and README.rst for pypi.org
- Loading branch information
Showing
3 changed files
with
118 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
# django-auto-logout | ||
|
||
[![Build Status](https://app.travis-ci.com/bugov/django-auto-logout.svg?branch=master)](https://app.travis-ci.com/bugov/django-auto-logout) | ||
|
||
Auto logout a user after specific time in Django. | ||
|
||
Works with | ||
- Python🐍 ≥ 3.7, | ||
- Django🌐 ≥ 3.0. | ||
|
||
## ✔️ Installation | ||
|
||
```bash | ||
pip install django-auto-logout | ||
``` | ||
|
||
Append to `settings.py` middlewares: | ||
|
||
```python | ||
MIDDLEWARE = [ | ||
# append after default middlewares | ||
'django_auto_logout.middleware.auto_logout', | ||
] | ||
``` | ||
|
||
--- | ||
|
||
**NOTE** | ||
|
||
Make sure that the following middlewares are used before doing this: | ||
|
||
- `django.contrib.sessions.middleware.SessionMiddleware` | ||
- `django.contrib.auth.middleware.AuthenticationMiddleware` | ||
- `django.contrib.messages.middleware.MessageMiddleware` | ||
|
||
--- | ||
|
||
## 💤 Logout in case of idle | ||
|
||
Logout a user if there are no requests for a long time. | ||
|
||
Add to `settings.py`: | ||
|
||
```python | ||
AUTO_LOGOUT = {'IDLE_TIME': 600} # logout after 10 minutes of downtime | ||
``` | ||
|
||
## ⌛ Limit session time | ||
|
||
Logout a user after 3600 seconds (hour) from the last login. | ||
|
||
Add to `settings.py`: | ||
|
||
|
||
```python | ||
AUTO_LOGOUT = {'SESSION_TIME': 3600} | ||
``` | ||
|
||
## ✉️ Show messages when logging out automatically | ||
|
||
Set the message that will be displayed after the user automatically logs out of the system: | ||
|
||
```python | ||
AUTO_LOGOUT = { | ||
'SESSION_TIME': 3600, | ||
'MESSAGE': 'The session has expired. Please login again to continue.', | ||
} | ||
``` | ||
|
||
It uses `django.contrib.messages`. Don't forget to display messages in templates: | ||
|
||
```html | ||
{% for message in messages %} | ||
<div class="message {{ message.tags }}"> | ||
{{ message }} | ||
</div> | ||
{% endfor %} | ||
``` | ||
|
||
--- | ||
|
||
**NOTE** | ||
|
||
`messages` template variable provides by `django.contrib.messages.context_processors.messages` | ||
context processor. | ||
|
||
See `TEMPLATES` → `OPTIONS` → `context_processors` in your `settings.py` file. | ||
|
||
--- | ||
|
||
## 🌈 Combine configurations | ||
|
||
You can combine previous configurations. For example, you may want to logout a user | ||
in case of downtime (5 minutes or more) and not allow working within one session | ||
for more than half an hour: | ||
|
||
```python | ||
AUTO_LOGOUT = { | ||
'IDLE_TIME': 300, # 5 minutes | ||
'SESSION_TIME': 1800, # 30 minutes | ||
'MESSAGE': 'The session has expired. Please login again to continue.', | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
__version__ = '0.3.1' | ||
__version__ = '0.3.2' |