【问题标题】:Django Two Factor Authentication not workingDjango 两因素身份验证不起作用
【发布时间】:2021-04-08 23:10:21
【问题描述】:

我正在尝试为我的 Django 项目设置双重身份验证。以下是配置详情

settings.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',
}
}
}

urls.py


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

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

有人可以指导我了解上述配置中缺少什么吗?

【问题讨论】:

  • 显示你的views.py
  • 我没有在与两因素身份验证相关的视图中做任何事情。如果应该在那里做些什么,你能提供细节吗?谢谢
  • 所以你正在使用某人的包来做到这一点?你能指定那个包的名字吗?
  • 看起来您缺少一些步骤,包括在您的 settings.py 中添加几个变量,再次检查文档并确保您按照文档执行所有操作,并且没有遗漏任何一个小细节 @ 987654323@

标签: django two-factor-authentication django-two-factor-auth


【解决方案1】:

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

【讨论】:

  • 嗨,当您说两个地方的时间都正确时,这是否意味着两者应该相同?如果是,那么如果我的服务器托管在美国,如果我来自印度,那么这两个时间将不匹配。对此有何建议?
  • 它使用unix时间戳(总是gmt),所以只要你在手机和服务器上得到相同的时间戳,你就可以了
  • 我会试试这个
  • 由于我们的要求已更改为在电子邮件中随机生成一个值,然后对其进行验证。我已经使用自定义解决方案和电子邮件我不再使用这个包了。无论如何,我稍后会在需要时再试一次。感谢您的帮助。
猜你喜欢
  • 2019-07-21
  • 2019-07-21
  • 1970-01-01
  • 1970-01-01
  • 2013-12-02
  • 2021-06-26
  • 1970-01-01
  • 2021-07-18
  • 2012-11-03
相关资源
最近更新 更多