django一次性口令认证的另一个实现

django-good-otp的Python项目详细描述


django的另一个otp实现

CICovStGPA

这是什么?

这个脚本是2因素身份验证的“又一个实现”。

为什么我要重新发明?

首先,我尝试了Django OTP,但是需要2个fa代码,尽管它应该是 可选。此外,不提供编辑/修复密钥的管理面板。

然后,我试过django-two-factor-auth,但我发现它是 Django OTP对未启用2fa的用户需要2fa代码。

如何使用

  1. 安装此脚本。这里有pip package,您可以通过 pip install django_good_otp
  2. 像往常一样创建一个django项目。
  3. 编辑settings.py。您需要编辑已安装的应用程序和 身份验证后端。有关详细信息,请参阅edit settings部分。
  4. 像往常一样运行迁移。
  5. 编辑根url配置的url.py以启用二维码。 有关详细信息,请查看url routing部分。
  6. 要启用管理面板,您需要编写非常小的代码。 有关详细信息,请查看enable admin panel部分。
  7. 要在管理面板登录时使用2fa,还需要编写非常简单的 代码。有关详细信息,请查看enable admin panel部分。

编辑设置

您需要编辑configuration such settings.py。要编辑的变量 是INSTALLED_APPSAUTHENTICATION_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.sitedjango_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更受欢迎

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaFX 11可编辑组合框引发IndexOutOfBoundsException   java选择数组中的数组元素   java我从来没有找到创建2D ArrayList的正确方法   java JPA查找orderById的顶部数据,并按字符串过滤Id   使用java在ejabberd中进行xmpp外部身份验证   从ajax调用向java传递点运算符   java如何使用ReadWriteLock   使用Spring控制器和jQueryAjax的java重定向   java使JFrame中的JPanel可滚动   java如何用多个。jar库?   java EditText在RecyclerView中失去了对滚动的关注   java为什么我们必须扩展Servlet或GenericServlet或HttpServlet来创建Servlet应用程序?如果不扩展,我们可以开发Servlet应用程序吗?   使用递归java查找数组中的最大值   具有不同字段数的html表单的java域传输对象   java文本视图扩展;不支持操作异常   java如何使用iText的HTMLWorker类将多语言HTML字符串呈现为PDF