1

我正在尝试为我的 Django 项目设置两因素身份验证。下面是详细配置

设置.py

 'django_otp',
    'django_otp.plugins.otp_static',
    'django_otp.plugins.otp_totp',
    'two_factor',
...    
]
MIDDLEWARE = [
 'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django_otp.middleware.OTPMiddleware',
...
]

LOGIN_URL = 'two_factor:login'
LOGIN_REDIRECT_URL = 'two_factor:profile'

TWO_FACTOR_PATCH_ADMIN = True
TWO_FACTOR_CALL_GATEWAY = 'two_factor.gateways.fake.fake'
TWO_FACTOR_SMS_GATEWAY = 'two_factor.gateways.fake.Fake'

AUTH_USER_MODEL ='Products.CustomUser'

AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.ModelBackend', 
)


LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
},
},
'loggers': {
'two_factor': {
'handlers': ['console'],
'level': 'INFO',
}
}
}

网址.py


urlpatterns = [
    path('', include(tf_urls)),
    # path('admin/', admin.site.urls),
]

当我访问 url http://127.0.0.1:8001/account/login/时,它会导航到令牌生成页面。当我使用谷歌身份验证器扫描 QR 码,然后当我进入令牌系统时,会抛出错误
**not a valid token **。该应用程序已经使用自定义用户模型使用 django 默认身份验证运行。现在我正在尝试合并两个因素身份验证。

有人可以指导我了解上述配置中缺少的内容吗?

4

1 回答 1

0

确保服务器和电话上的时间设置正确。即使关闭几秒钟也可能导致验证失败。

于 2021-01-17T17:27:09.800 回答