Как перенаправить со страницы входа в систему, если пользователь уже вошел в систему и перешел на страницу входа в Django? - PullRequest
0 голосов
/ 31 марта 2020

Я использую встроенную систему аутентификации Django 2.1.

Пути к URL-файлам в файле urls.py.

urlpatterns = [
        path('',include('rmcapp.urls')),
        path('admin/', admin.site.urls),
        path('accounts/', include('django.contrib.auth.urls')),
      ]

Логин. html путь = "шаблоны / регистрация / вход в систему. html Использование

<form method="post" action="{% url 'login' %}"> 

в качестве тега формы в логине. html файл.

Я не расширил класс LoginView в файле views.py (если необходимо, я расширю)

Я пробовал это в файле urls.py

url(r'^login/$', LoginView.as_view(redirect_authenticated_user=True)),

, но это не сработало.

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

1 Ответ

0 голосов
/ 31 марта 2020

Если вы используете LoginView, предоставленный Django, вы увидите, что он принимает параметр redirect_authenticated_user, который позволяет указать представлению входа в систему перенаправить, если пользователь уже вошел в систему.

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

Что вам, вероятно, нужно, так это то, что ваше представление входа перенаправляет на страницу пользователь запрашивал прежде, чем попросить войти вместо домашней страницы (таким образом, пользователю не нужно go назад).

...