django
June 26, 2023

Добавление времени ожидания сеанса в Django

Зачем нам нужен тайм-аут сеанса?

Если ваши пользователи заходят на ваш веб-сайт с общедоступного компьютера в интернет-кафе или библиотеке, то есть вероятность, что они могут забыть выйти из системы. Если это так, то что мешает незнакомцу получить доступ к их профилю и прочитать всю их конфиденциальную информацию.

Что также может произойти, так это то, что пользователь может не нажимать "Выйти", а вместо этого закрыть свой браузер. Кто-то, у кого есть кое-какие соображения о них, может легко повторно отследить историю предыдущего пользователя и снова поиграть с его профилем.

Итак, как нам с этим разобраться?


Шаг 1:
Чтобы установить django-session-timeout, введите приведенную ниже команду:

pip install django-session-timeout

Шаг 2:
Далее необходимо добавить промежуточное программное обеспечение для django-session-timeout, его можно вставить куда угодно. Промежуточное программное обеспечение выглядит следующим образом:

# settings.py

MIDDLEWARE = [
   'django.contrib.sessions.middleware.SessionMiddleware',
   'django_session_timeout.middleware.SessionTimeoutMiddleware',
]

Шаг 3:
Некоторые полезные конфигурации, которые вы можете включить в свой settings.py следующие:


Время истечения времени ожидания сеанса:
Приведенный ниже код сделает ваш сеанс недействительным через 30 минут после начала действия.

Чтобы установить время истечения времени ожидания сеанса, просто используйте:

# settings.py

SESSION_EXPIRE_SECONDS = 1800  # Expire after 30 minutes

Аннулирует сеанс после самого последнего действия:

# settings.py

SESSION_EXPIRE_AFTER_LAST_ACTIVITY = True

Перенаправьте пользователей на другую страницу:
По истечении срока действия вашего сеанса перенаправьте своих пользователей на другую страницу, возможно, это может быть ваша домашняя страница, но в любом случае, вот как вы могли бы к этому подойти:

# settings.py

SESSION_TIMEOUT_REDIRECT = 'redirect_url_/' # Add your URL

Срок действия сеанса истекает при закрытии браузера:
Многие из ваших пользователей забудут выйти из своей учетной записи и вместо этого закроют браузер, будьте готовы к этому, добавив эту строку:

# settings.py

SESSION_EXPIRE_AT_BROWSER_CLOSE=True # Invalid session

Заключение

Хорошо, вот и все! Теперь вы сможете обрабатывать сеансы вашего пользователя более эффективным и безопасным способом.

https://dev.to/arnopretorius/adding-a-session-timeout-in-django-4l5