Django双因素身份验证不起作用

Django双因素身份验证不起作用,django,two-factor-authentication,django-two-factor-auth,Django,Two Factor Authentication,Django Two Factor Auth,我正在尝试为Django项目设置双因素身份验证。以下是配置详细信息 设置.py 'django_otp', 'django_otp.plugins.otp_static', 'django_otp.plugins.otp_totp', 'two_factor', ... ] MIDDLEWARE = [ 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django_otp.midd

我正在尝试为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',
}
}
}

urlpatterns = [
    path('', include(tf_urls)),
    # path('admin/', admin.site.urls),
]
url.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',
}
}
}

urlpatterns = [
    path('', include(tf_urls)),
    # path('admin/', admin.site.urls),
]
当我访问url时,它会导航到令牌生成页面。 当我用google authenticator扫描二维码,然后进入令牌系统时,会抛出错误
**不是有效的令牌**。 应用程序已使用自定义用户模型使用django默认身份验证运行。现在,我尝试合并双因素身份验证



有人能告诉我上述配置中缺少什么吗?

确保服务器和手机上的时间设置正确。即使是几秒钟的间隔也可能导致验证失败。

请确保服务器和手机上的时间设置正确。即使是几秒钟的间隔也可能导致验证失败。

显示您的
视图。py
我没有在与双因素身份验证相关的视图中执行任何操作。你能详细说明那里是否应该做些什么吗?。谢谢你这么说你是用Someone软件包来做的?您可以指定该软件包的名称吗?其django双因素身份验证似乎缺少一些步骤,包括在
设置.py
中添加几个变量,再次检查文档,确保您正在按照文档执行所有操作,并且没有遗漏任何微小的细节显示您的
视图。py
我没有在与双因素身份验证相关的视图中执行任何操作。你能详细说明那里是否应该做些什么吗?。谢谢你这么说你是用Someone软件包来做的?您可以指定该软件包的名称吗?其django双因素身份验证似乎缺少一些步骤,包括在
设置.py
中添加几个变量,再次检查文档,确保你按照文档做所有事情,并且没有遗漏任何一个小细节。嗨,当你说两个地方的时间都正确时,这是否意味着两者应该相同?。如果是,那么如果我的服务器托管在美国,如果我来自印度,那么两者的时间将不匹配。有什么建议吗?它使用unix时间戳(通常是gmt),所以只要你在电话和服务器上得到相同的时间戳,你就可以尝试一下。你开始工作了吗?因为我们的要求已更改为在电子邮件中随机生成值,然后验证它。我已经在电子邮件中使用了自定义解决方案,我不再使用此软件包。无论如何,我会在需要的时候再试一次。谢谢你的帮助。嗨,当你说两个地方的时间都正确时,这是不是意味着两个地方应该是一样的?。如果是,那么如果我的服务器托管在美国,如果我来自印度,那么两者的时间将不匹配。有什么建议吗?它使用unix时间戳(通常是gmt),所以只要你在电话和服务器上得到相同的时间戳,你就可以尝试一下。你开始工作了吗?因为我们的要求已更改为在电子邮件中随机生成值,然后验证它。我已经在电子邮件中使用了自定义解决方案,我不再使用此软件包。无论如何,我会在需要的时候再试一次。谢谢你的帮助。