Как запретить доступ к странице входа в систему после успешного входа в Django? - PullRequest
2 голосов
/ 13 апреля 2011

Используя метод django.contrib.auth.views.login для выполнения метода входа в моем проекте, как предотвратить повторный доступ к странице /registration/login/ после успешного входа в систему?

Ответы [ 2 ]

4 голосов
/ 13 апреля 2011

Вы можете деократировать свой логин-вид с помощью этого AnonymousRequired -Декоратора.

См. Этот пост в блоге для получения дополнительной информации о декораторах, которая даже объясняет вещи, используя вашу конкретную проблему: http://passingcuriosity.com/2009/writing-view-decorators-for-django/

2 голосов
/ 13 апреля 2011

В представлении входа в систему проверьте, аутентифицирован ли уже пользователь:

def your_login(request):
    if request.user.is_authenticated():
        return redirect('yourhomepage') # or somewhere else or last url

РЕДАКТИРОВАТЬ

Если вы хотите продолжать аутентификацию таким способом, единственный способЯ могу думать о перенаправлении через промежуточное ПО.

  1. Создание промежуточного программного обеспечения
  2. Проверьте, совпадает ли текущий URL с вашим логином URL
  3. Если пользователь уже аутентифицирован, перенаправьте на домашнюю страницу, в противном случае выполните обычную обработку
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...