Как реализовать в django mfa посредством otp на email?
Пытаюсь реализовать следующую схему:
Есть кастомная модель юзера, реализованная через AbstractBaseUser, регистрация через CreateView ну и класс формы.
При регистрации, я проставляю пользователю по дефолту is_active = False, и вывожу сообщение, что на вашу электронную почту отправлен otp код и делаю редирект на страницу /verification/
Как правильно показывать страницу для ввода кода пользователю для завершения шага регистрации?
Мне же ее нужно показывать только пользователям, которые уже залогинены.
А также, например, если пользователь вышел с сайта ну или сессия дропнула или еще что-то.
Его юзернейм я храню с почтой. Например, если он повторно залогинится в аккаунт, то мне нужно ему вновь показать эту страницу с вводом otp кода.
Я так понимаю, мне нужно переопределить стандартные методы authenticate и login в джанго?
Просто если эти методы не трогать, то при is_active = False в аккаунт не пустит.
--
Как это корректно реализовать?
Решений можно придумать кучу, например, не трогай is_active, а добавить еще поле wait_otp = True и после правильного ввода переводи в False, если надо на уровне сессий, сделай это поле в SessionStore
ЗЫ хотя если используешь django-mfa2, то скорее там всё это должно быть на уровне пакета.
Ну я к готовым пакетам по типу django-mfa2 или django-allauth как то не очень.
--
Типа is_active оставлять как True если пользователь не забанен, сделать еще поле wait_otp = True и по нему перекидывать на страницу верификации ? а это не будет костыльным решением ?