Блокировка пароля после нескольких попыток входа в систему для Django + simplejwt
Я создаю Django приложение и реализовал функцию входа с помощью django restframework simplejwt.
.
Теперь пытаюсь добавить функцию для блокировки пользователей после нескольких неправильных попыток входа.
Многие предлагают пакет django-axes, но он работает только с бэкендом аутентификации Django по умолчанию. бэкендом аутентификации, а не с представлениями simplejwt.
Есть ли существующие пакеты python, помогающие в этом? Иначе, как реализовать такую функцию с помощью simplejwt?
Я могу представить ванильное решение, добавив поля is_locked и login_counter для модели пользователя и обновляя их в соответствии с вашей логикой в представлениях входа. Например, [login-failed -> counter += 1 -> (counter>3) then is_locked=true]. Затем, возможно, что-то вроде [changed password -> counter = 0 and is_locked = False]. Это не надежно, и синхронизация/одновременные запросы могут быть проблемой, но может быть отправной точкой.