Django两因素身份验证设置

时间:2019-02-27 19:31:05

标签: django django-models django-forms django-templates django-views

我最近在这里问了一个有关Django双重身份验证的问题... Django Two Factor Authentication。根据收到的反馈,我正在尝试将其部署到我的项目中。我已经阅读了基本的安装说明,但是我还不太清楚如何在我的项目中使用它。

我已经通过...安装了它

pip install django-two-factor-auth

然后将其添加到我的settings.py文件中...

INSTALLED_APPS = (
    ...
    'django_otp',
    'django_otp.plugins.otp_static',
    'django_otp.plugins.otp_totp',
    'two_factor',
)

我已将其添加到我的settings.py文件中...

from django.core.urlresolvers import reverse_lazy

LOGIN_URL = reverse_lazy('two_factor:login')

# this one is optional
LOGIN_REDIRECT_URL = reverse_lazy('two_factor:profile')

我已将其添加到我的urls.py文件中...

urlpatterns = patterns(
    '',
    url(r'', include('two_factor.urls', 'two_factor')),
    ...
)

我正在通过以下导入从django.contrib.auth.views中使用LoginView ...

from django.contrib.auth.views import LoginView

此后,我将其从two_factor更改为LoginView的子类,如下所示:

from two_factor.views import LoginView

然后,在我的项目目录中设置一个two_factor / _base.html文件...

但是当我输入用户名和密码的初始凭据时,会收到以下消息...

SuspiciousOperation at /project/login/
ManagementForm data is missing or has been tampered.

我不确定是否有更详细的说明可用...但是我已经遵循了那里的内容,似乎无法弄清楚如何进行下去...

出于记录,我试图找出如何在用户登录时合并两因素身份验证,然后他们必须输入一个密码作为示例。我还试图在注册时强制用户将其设置为强制登录方法。现在我意识到我正在使用的LoginView不正确。我需要弄清楚在用户最初注册时如何正确设置此设置。

不确定下一步要去哪里。预先感谢您的任何想法。

1 个答案:

答案 0 :(得分:0)

经过大量的试验和错误...我发现我需要更新我的settings.py文件以解决伪造的网关,并且我需要合并日志记录代码以打开信息消息... < / p>

这是我引用的页面的链接...

https://django-two-factor-auth.readthedocs.io/en/stable/configuration.html

一旦我将下面的代码添加到settings.py文件中,我就能启动并运行2FA ...

TWO_FACTOR_CALL_GATEWAY = 'two_factor.gateways.fake.Fake'

TWO_FACTOR_SMS_GATEWAY = 'two_factor.gateways.fake.Fake'

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