Сессия с Джанго - PullRequest
       21

Сессия с Джанго

0 голосов
/ 12 февраля 2019

На домашней странице у меня есть форма входа.в view.index приложения «Домой», после аутентификации, я создаю ssesion.И после, я вызываю приложение «Места», если аутентификация является окей,

request.session['user'] = username
request.session.set_expiry(900)
return HttpResponseRedirect('/places/')

в настройках проекта я настраиваю SESSION_SAVE_EVERY_REQUEST = True.

Как я могу отправить сеансна все остальные страницы проекта и выйти из системы по окончании сеанса?

1 Ответ

0 голосов
/ 12 февраля 2019

HTTP - это протокол ответа на запрос.

Это означает, что сервер не может связаться с клиентом без инициации диалога клиентом.Таким образом, единственный способ сделать что-то подобное это родной Django, это периодически проверять клиент, чтобы убедиться, что сессия все еще в порядке.

Один из способов добиться этого - использовать фоновый ajax-вызов (возможно, используя setIntervalв javascript), который проверяет сеанс и, если он больше не годится (либо по истечении срока, либо пользователь был отключен и т. д.), то перенаправляет их обратно на страницу входа.

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

...