Блокировка пароля после нескольких попыток входа в систему для 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]. Это не надежно, и синхронизация/одновременные запросы могут быть проблемой, но может быть отправной точкой.

Вернуться на верх