django双因素认证can';t访问管理站点

django双因素认证can';t访问管理站点,django,security,two-factor-authentication,Django,Security,Two Factor Authentication,我正在使用django双因素身份验证进行Web应用。我无法访问管理页面 我知道我正在输入正确的凭据。当我输入不正确的凭据时,会收到相应的错误消息 当我输入正确的凭据时,页面只需使用以下URL重新加载: http://localhost:8080/account/login/?next=/inveskore/ 以下是我与两个因素相关的设置: LOGIN_URL = 'two_factor:login' LOGIN_REDIRECT_URL = '/inveskore' TWO_FACTOR_SM

我正在使用django双因素身份验证进行Web应用。我无法访问管理页面

我知道我正在输入正确的凭据。当我输入不正确的凭据时,会收到相应的错误消息

当我输入正确的凭据时,页面只需使用以下URL重新加载:

http://localhost:8080/account/login/?next=/inveskore/
以下是我与两个因素相关的设置:

LOGIN_URL = 'two_factor:login'
LOGIN_REDIRECT_URL = '/inveskore'
TWO_FACTOR_SMS_GATEWAY = 'two_factor.gateways.twilio.gateway.Twilio'
这是关联的URL路径:

path('admin/', admin.site.urls),
根据,这是由于管理员用户没有设置2FA

那么,如果您无法访问该站点,如何为管理员用户设置2FA

编辑:


我删除了该站点的2FA登录要求,然后添加了一个电话设备。运气不好。

我最近遇到了这种情况,并根据其中的一条评论创建了此解决方案:

我对AdminSiteOTPRequired进行了子类化,然后将其指定为要使用的admin类

来自django.conf导入设置的

从django.contrib.auth导入重定向\字段\名称
从django.contrib.auth.views导入重定向到登录
从django.http导入HttpResponseRedirect
从django.shortcuts导入解析url
从django.url反向导入
从django.utils.http导入是\u安全的\u url
从两个\u factor.admin导入AdminSiteOTPRequired,AdminSiteOTPRequiredMixin
类AdminSiteOtPrequiredMixinRederSetup(AdminSiteOTPRequired):
def登录(自我、请求、额外上下文=无):
将_重定向到=request.POST.get(
重定向\字段\名称,request.GET.GET(重定向\字段\名称)
)
#对于尚未验证AdminSiteOTPRequired.has\u权限的用户
#将失败。因此,请使用标准的管理员权限检查:
#(处于活动状态且为工作人员),然后检查验证。
#如果他们通过,请转到索引,否则请让他们设置OTP设备。
如果request.method==“GET”和super(
AdminsiteTprequiredMixin,self
).具有_权限(请求):
#已登录并由OTP验证
如果已验证request.user():
#用户有权限
索引\路径=反向(“管理员:索引”,当前\应用程序=self.name)
其他:
#用户有权限但未设置OTP:
索引路径=反向(“两个因素:设置”,当前应用程序=self.name)
返回HttpResponseRedirect(索引路径)
如果不重定向到或不重定向是安全的url(
url=重定向到,允许的\u主机=[请求.获取\u主机()]
):
重定向到=解析url(设置。登录\u重定向\u url)
返回重定向到登录(重定向到)
然后在
url.py
中:

from django.contrib import admin
admin.site.__class__ = AdminSiteOTPRequiredMixinRedirSetup

我还不能对此发表评论,但@saschwarz的上述回答在Django 2.2和Django双因素auth中发挥了巨大的作用。他的代码中唯一缺少的是额外的导入:

from django.http import HttpResponseRedirect
之后,我可以使用这一行:

admin.site.__class__ = AdminSiteOTPRequiredMixinRedirSetup
为管理员用户快速实施两个因素


django双因素身份验证的文档中确实缺少这一点。。。我看了很长一段时间的文档,没有找到生成二维码的清晰方法。它只在演示应用程序中真正演示,而不是以非常模块化的方式

你有你的护照吗?有。我对我设置的一个普通用户使用Twilio没有问题。更新时缺少导入。谢谢你,彼得·塞格斯特罗姆。