API сообщения сеанса с истекшим сроком действия в Django - PullRequest
1 голос
/ 05 марта 2011

В настоящее время я использую SESSION_COOKIE_AGE = 60*60, чтобы закончить сеанс Django через 1 час.Мне нужно дать пользователю сообщение о том, что его сеанс истек на странице входа в систему.

Есть ли способ проверить, истек ли сеанс?Или есть сообщение API для сеансов с истекшим сроком действия в Django?

Я осмотрелся и ничего не увидел для установки сообщения сеанса с истекшим сроком.

Спасибо!

Ответы [ 3 ]

1 голос
/ 07 июля 2015

Чтобы отобразить сообщение о том, что сеанс истек, вы можете проверить, существует ли сеанс в представлении выхода из системы, и соответствующим образом изменить сообщение об успехе

class Logout(View):
def get(self, request):
    if request.session:
        messages.success(request, 'Successfully Logged Out')
    else:
        messages.error(request, 'Session Expired Please Login Again')
    logout(request)
    return redirect(reverse('login'))
0 голосов
/ 17 августа 2017

Я предложил ту же проблему и решил, как показано ниже:

Джанго перенаправил на LOGIN_URL после истечения сеанса.Поэтому я указал URL-адрес для входа в систему в settings.py для показа сообщения пользователю и перенаправления в наше представление для входа.

settings.py:

LOGIN_URL = reverse_lazy('account:logout') 

views.py:

class LogoutView(RedirectView):
    url = reverse_lazy('account:login') # Our login view

    def get(self, request, **kwargs):

        # If session expired django clean request.session object.
        # If user came to this view by clicking to logout button request.session not comes empty 
        if request.session.is_empty():
            messages.error(request, "Your session has expired. Please login again to continue checking out.")

        logout(request)

        if request.GET.get('next'):
            self.url = '{}?next={}'.format(self.url, request.GET.get('next'))

        return super(LogoutView, self).get(request, **kwargs)
0 голосов
/ 05 марта 2011

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

Что вы можете сделать, это проверить SESSION_COOKIE_AGE (который предоставляет возраст файла cookie в секундах) и, если сеанс пользователясрок действия истекает, сообщите об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...