Django's contrib auth + Allauth's MFA - настройка 2FA

Я добавил функцию под названием 2FA в свой проект django, используя django-allauth[mfa]. Я также настроил процесс входа в социальный аккаунт с помощью google.

  • форма входа в систему находится у django.contrib.auth
  • 2FA форма находится в allauth.mfa

authentication/views.py - мое пользовательское представление django contrib auth

class CustomLoginView(LoginView):
    form_class = UserLoginForm
    template_name='authentication/login.html'
    redirect_authenticated_user=True
    mfa_enabled = False

    def dispatch(self, request, *args, **kwargs):
        if self.redirect_authenticated_user and self.request.user.is_authenticated:
            if self.mfa_enabled:
                return HttpResponseRedirect(resolve_url('account_login'))
            else:
                redirect_to = self.get_success_url()
                if redirect_to == self.request.path:
                    raise ValueError(
                        "Redirection loop for authenticated user detected. Check that "
                        "your LOGIN_REDIRECT_URL doesn't point to a login page."
                    )
                return HttpResponseRedirect(redirect_to)
        return super().dispatch(request, *args, **kwargs)

    def form_valid(self, form):
        user = form.get_user()
        if self.has_mfa(user):
            self.mfa_enabled = True
            print("2FA enabled")
        else:
            auth_login(self.request, user)
        return super().form_valid(form)

    def has_mfa(self, user):
        return is_mfa_enabled(user) 

и этот код вообще не работает. После успешного входа в систему он перенаправляет на homepage. Я хочу перенаправить на форму 2FA, если учетная запись пользователя активирована 2fa.

path('accounts/2fa/authenticate/', views.Custom2FAAuthenticateView.as_view(), name='account_login'),

Это моя настроенная форма 2FA auth. Она работает с социальными аккаунтами, такими как google, и перенаправляет на форму 2FA, если аккаунт активирован 2FA.

это мой файл 2FA auth customized view

# 2FA authentication view for social login
class Custom2FAAuthenticateView(Base2FAAuthenticateView):
    template_name = "authentication/mfa/authenticate.html"

Я перепробовал много способов. при перенаправлении resolver_url('account_login') броузера произошел сбой. Как настроить и какие изменения нужно внести, чтобы это исправить. Пожалуйста, кто-нибудь, кто сталкивался с этим, помогите мне.

Спасибо!!!

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