Metadata-Version: 2.1
Name: django-session-timeout
Version: 0.1.0
Summary: Middleware to expire sessions after specific amount of time
Home-page: https://github.com/LabD/django-session-timeout
Author: Lab Digital
Author-email: opensource@labdigital.nl
License: MIT
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Framework :: Django :: 2.0
Classifier: Framework :: Django :: 2.1
Classifier: Framework :: Django :: 2.2
Classifier: Framework :: Django :: 3.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: Django >=1.11
Requires-Dist: six >=1.12
Provides-Extra: docs
Requires-Dist: sphinx >=1.8.4 ; extra == 'docs'
Provides-Extra: test
Requires-Dist: coverage[toml] ==5.0.3 ; extra == 'test'
Requires-Dist: freezegun ==0.3.15 ; extra == 'test'
Requires-Dist: pytest ==5.3.5 ; extra == 'test'
Requires-Dist: pytest-django ==3.8.0 ; extra == 'test'
Requires-Dist: pytest-cov ==2.8.1 ; extra == 'test'
Requires-Dist: isort[pyproject] ==4.3.21 ; extra == 'test'
Requires-Dist: flake8 ==3.7.9 ; extra == 'test'
Requires-Dist: flake8-blind-except ==0.1.1 ; extra == 'test'
Requires-Dist: flake8-debugger ==3.1.0 ; extra == 'test'


# django-session-timeout

Add timestamp to sessions to expire them independently

## Installation

```shell
pip install django-session-timeout
```

## Usage

Update your settings to add the SessionTimeoutMiddleware:

```python
MIDDLEWARE_CLASSES = [
    # ...
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django_session_timeout.middleware.SessionTimeoutMiddleware',
    # ...
]
```

And also add the ``SESSION_EXPIRE_SECONDS``:


```python
SESSION_EXPIRE_SECONDS = 3600  # 1 hour
```

By default, the session will expire X seconds after the start of the session.
To expire the session X seconds after the `last activity`, use the following setting:

```python
SESSION_EXPIRE_AFTER_LAST_ACTIVITY = True
```

By default, `last activiy` will be grouped per second.
To group by different period use the following setting:

```python
SESSION_EXPIRE_AFTER_LAST_ACTIVITY_GRACE_PERIOD = 60 # group by minute
```

To redirect to a custom URL define the following setting:

```python
SESSION_TIMEOUT_REDIRECT = 'your_redirect_url_here/'
```
