django一次性口令认证的另一个实现
django-good-otp的Python项目详细描述
django的另一个otp实现
这是什么?
这个脚本是2因素身份验证的“又一个实现”。
为什么我要重新发明?
首先,我尝试了Django OTP,但是需要2个fa代码,尽管它应该是 可选。此外,不提供编辑/修复密钥的管理面板。
然后,我试过django-two-factor-auth,但我发现它是 Django OTP对未启用2fa的用户需要2fa代码。
如何使用
- 安装此脚本。这里有pip package,您可以通过
pip install django_good_otp
。 - 像往常一样创建一个django项目。
- 编辑settings.py。您需要编辑已安装的应用程序和 身份验证后端。有关详细信息,请参阅edit settings部分。
- 像往常一样运行迁移。
- 编辑根url配置的
url.py
以启用二维码。 有关详细信息,请查看url routing部分。 - 要启用管理面板,您需要编写非常小的代码。 有关详细信息,请查看enable admin panel部分。
- 要在管理面板登录时使用2fa,还需要编写非常简单的 代码。有关详细信息,请查看enable admin panel部分。
编辑设置
您需要编辑configuration such settings.py。要编辑的变量
是INSTALLED_APPS
和AUTHENTICATION_BACKENDS
。
已安装的应用程序
您只需要添加'django_otp.DjangoOTP'
在'django.contrib.auth'
之后,即应该是这样:
settings.py
INSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',"django_otp.DjangoOTP"]
请注意,这取决于具体情况。也就是说,如果你有更多的应用程序
安装/卸载后,您的INSTALLED_APPS
列表可能比
这个。
认证后端
要使用2fa,您需要将身份验证后端替换为后端
本模块提供。即在settings.py
中设置AUTHENTICATION_BACKENDS
到("django_otp.backends.OTPAuthBackend", )
。例如:
settings.py
AUTHENTICATION_BACKENDS=("django_otp.backends.OTPAuthBackend",)
URL路由
此模块支持qrcode将密钥传输到您的设备。到
使用它,您将需要使用include
函数添加django_otp.urls
像这样:
urls.py
fromdjango.conf.urlsimporturl,includefromdjango.contribimportadminurlpatterns=[url(r'^admin/',admin.site.urls),url(r'^qr/',include("django_otp.urls"))]
启用管理面板
管理面板
默认情况下,存储密钥的模型的管理面板是disabled。
要启用管理面板,您需要调用OTPAdmin.enable()
方法
这个:
urls.py
fromdjango.conf.urlsimporturl,includefromdjango.contribimportadminfromdjango_otp.adminimportOTPAdminOTPAdmin.enable()urlpatterns=[url(r'^admin/',admin.site.urls),url(r'^qr/',include("django_otp.urls"))]
在adminsite上使用2fa表单
不幸的是,管理站点的登录模板不处理自定义
登录表单。因此,要使用2fa ready管理表单,需要替换
admin.site
与django_otp.admin.AdminSite
一起。例如:
urls.py
fromdjango.conf.urlsimporturl,includefromdjango.contribimportadminfromdjango_otp.adminimportAdminSiteOTPAdmin.enable()urlpatterns=[url(r'^admin/',admin.site.urls),url(r'^qr/',include("django_otp.urls"))]
其他材料
对于这里没有记录的其他内容,请参考source code。
贡献
代码在Github上,您可以创建问题/prs。制造问题是 不过,感谢您,制作prs更受欢迎。