0

我正在尝试在我的 Django 应用程序中使用 django-allauth 和 django-allauth-2fa。

我的 django-allauth 应用程序设置正确 - 一切都按预期工作。

但是,在尝试设置 django-allauth-2fa 时,我遇到了一些问题: 当我扫描 QR 码时,在 accounts/two_factor/setup/ 配置双因素身份验证,输入生成的令牌并按验证页面只需重新加载一个新的二维码,而不是引导我进入双因素配置工作流程的下一步。我无法弄清楚我的错误可能是什么,因为我按照 django-allauth-2fa 文档中的内容设置了所有内容

我的Pipfile

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
django = "==3.0.0"
pylint = "==2.4.4"
django-crispy-forms = "==1.9"
django-allauth = "==0.42.0"
django-allauth-2fa = "==0.8"

[requires]
python_version = "3.7"

我的settings.py文件:

...

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',

    # Local
    'users.apps.UsersConfig',
    'pages.apps.PagesConfig',

    #Third-party
    'allauth',
    'allauth.account',
    'django_otp',
    'django_otp.plugins.otp_totp',
    'django_otp.plugins.otp_static',
    'allauth_2fa',
    'crispy_forms',
]



MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django_otp.middleware.OTPMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'allauth_2fa.middleware.AllauthTwoFactorMiddleware',
]

SITE_ID = 1

ACCOUNT_ADAPTER = 'allauth_2fa.adapter.OTPAdapter'

...

我的urls.py文件:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('accounts/', include('allauth_2fa.urls')),
    path('accounts/', include('allauth.urls')),
    path('', include('pages.urls')),
]

我也跑了python manage.py migrate

4

1 回答 1

-1

在 Ubuntu20 上有同样的问题。通过启用自动同步日期和时间来修复它。

于 2021-02-11T17:42:54.633 回答