Перенаправить для просмотра или URL из модели в Django - PullRequest
0 голосов
/ 24 марта 2020

Когда пользователь пытается атаковать перебором более чем 10 неудачных попыток (на странице входа в систему), я блокирую пользователя. Поэтому, как показано в приведенном ниже коде, я перемещаю пользователя из представления входа в систему в представление «/ login_lock /», как показано в URL. Но по некоторым причинам я не уверен, что не могу перейти на / login_lock / и повторяю страницу / представление входа в систему с неверными учетными данными. Ошибка проверки.

Не могли бы вы мне помочь, как перейти к представлению login_lock с вызов от user_login_failed_callback (этот вызов в models.py).

@receiver(user_login_failed)
def user_login_failed_callback(sender, credentials,  **kwargs):

        username = credentials['username']
        user = User.objects.get(username=username)
        profile = user.get_profile()

        if profile.failed_login_count <= 9:
            profile.failed_login_count = profile.failed_login_count+1
            profile.last_login_attempt_date_time = timezone.now()
            profile.save()
        else:
            return HttpResponseRedirect('/login_lock/')

    url(r'^login/$', auth_views.login, {'template_name': 'dau_gui_app/registration/login.html'}),
    url(r'^login_lock/$', auth_views.login, {'template_name': 'dau_gui_app/registration/login_lock.html'}),

1 Ответ

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

К сожалению, этот дизайн не будет работать. Вы не можете изменить ответ на запрос в обработчике сигналов. Я бы посмотрел на обёртывание auth_views.login и обработку там логики c. Или создать свой собственный шаблон подписки, который позволяет получить ответ от подписчиков.

...