问题标签 [django-two-factor-auth]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
145 浏览

django - Django 2FA 在本地工作,但在服务器上失败(静默)

问题

我需要为 Django 项目实现双重身份验证。我正在使用Django 双因素身份验证,它在本地与 Google Authenticator 和我们的 SMS 网关一起工作得很好。当我将应用程序发布到测试服务器时会出现此问题。登录正常工作,但是当我填写令牌时,它只会将我重定向回初始登录步骤以再次填写我的凭据。它没有在 UI 中给我任何错误消息,据我所知,日志中也没有。

不知道它是否相关,但该应用程序在服务器上作为 Docker Swarm 服务运行。

我试过的

由于缺乏对 2FA 库和 OTP 库的反馈和知识,我真的不知道从哪里开始。我很确定我的本地机器和测试环境之间的设置一样好。软件包版本相同。我什至确保我的机器和服务器之间的时间和时区是相同的。

在 OTP 库的表中查看数据库,失败计数为 0,并且last_t每次我尝试登录时都会增加。这告诉我,令牌本身已经过验证,根据 Django-OTP 文档:

BigIntegerField:最后验证令牌的时间步长。为了避免两次验证相同的令牌,这将在每次成功验证时更新。随后将仅验证更高时间步的令牌。(默认值:-1)


任何建议都非常感谢。我知道我没有提供我的确切实现的具体细节,但我希望有人可能对问题可能有一些大致的了解。无论如何,如果您需要更具体的内容,请告诉我。

谢谢,

尼克诺

编辑 1

我错了,日志中实际上有一些我以前没有看到的东西:

所以也许这可以表明我有一些漂移导致令牌无效?

版本是

  • Django 2.2.20
  • django-otp 1.0.3
  • django-双因素身份验证 1.13.1

我将尝试包含相关代码

我的settings.py被分成环境设置,每个settings.base.py。2FA 的所有相关代码都在 settings.base.py 中:

这基本上是我添加的所有内容,以便使其在我的机器上本地工作。

0 投票
3 回答
719 浏览

python - Django - 两因素身份验证自定义登录

在快速搜索和阅读文档后,我在我的一个 Django 项目 [参考链接] 中实现了 Django - Two Factor Authentication。

它很好用,我正在使用 Google Authenticator 进行基于令牌的登录。当我想扩展库的登录方法时,就会出现问题。我想强制我的每个用户使用 2-Factor-Auth 作为强制。我没有使用任何注册措施,因此必须在用户登录时进行检查。

问题是设计一个自定义登录机制,但我无法将此库与自定义登录合并。

PS:我有一个自定义用户模型,目前我使用的是 Django 两因素身份验证附带的默认登录。

虽然代码不是必需的,但我没有发布它,但如果需要,我可以分享它。

0 投票
1 回答
308 浏览

django - Django Rest Framework 和 django rest framework simplejwt 两因素身份验证

我将 django 版本 3.2.4 与 Django Rest Framework 结合使用。我还将https://github.com/jazzband/djangorestframework-simplejwt用于 JWT。

问题:我需要通过以下方式启用两因素身份验证。

  1. 用户使用他提交用户名和密码的端点。他收到了一个 jwt 令牌,该令牌在声明中包含了他需要输入哈希的验证码。同时,带有此代码的电子邮件会发送到他的电子邮件。
  2. 用户收到电子邮件后,他在另一个 enpoint 中发布了收到的验证码和他在上一步中收到的 jwt 令牌。
  3. 如果用户提交的代码与散列代码匹配,那么他将获得 jwt 令牌,该令牌将在后续请求中使用。

PS 欢迎任何其他与上述实现类似的想法。

0 投票
1 回答
215 浏览

django - 如何在自定义登录页面中应用 django-two-factor-auth?

我正在使用 Django双重身份验证来保护我的管理员登录。我为我的每个管理员强制执行 OTP 要求登录。现在我想为我的普通用户实现这个。如果任何用户在他的帐户上激活了两个因素,那么每次他都会像管理员用户一样被重定向到 otp 页面,如果没有启用两个因素,那么他将重定向到我的帐户页面。这是我的登录视图:

我还想知道如何取回 Django 默认管理员登录页面。实施 django-two-factor-auth 后,我的管理员登录页面如下所示

在此处输入图像描述

有没有办法重新设计自定义的两因素身份验证登录 html 页面???

0 投票
0 回答
70 浏览

django - 使用验证码和两因素身份验证的 Django 登录

我对 Django 还是很陌生,并且设法创建了自己的登录页面,该页面与轴和 repatcha 集成,基本上在 3 次登录尝试失败时显示验证码以及我自己的错误消息 - 这一切都可以正常工作,但我现在也想添加我已经实施的两因素身份验证。

我已经设法安装了 django 两因素身份验证包,但似乎我被迫使用两因素身份验证包附带的登录页面。在我自己的登录和附加功能上花费了这么多时间后,我迫切需要保持这一点。我相信我能够编辑两个因素身份验证模板文件,但主要问题是能够将现有视图/装饰器中的功能与两个因素身份验证视图一起使用。

以下是我当前的设置:

网址

看法

装饰器(用于验证码)

模板

我的管理员页面也有这个设置,并添加了对 is_staff 的验证(授权使用管理员) - 我没有包括与上面几乎相同的内容,一旦我知道如何实现上述内容,应该能够适应. 如果有人可以指导我如何将上面提到的登录页面功能与两因素身份验证包一起使用,我将不胜感激,因为我目前迷路了。谢谢

0 投票
0 回答
45 浏览

django - Django将现有代码从两个因素身份验证集成到基于通用类的视图中

我有以下登录视图:

但是我现在使用 django 两个因素身份验证视图,并希望在我的上面的代码中将装饰器和尝试计数代码和上下文以及 if 语句登录尝试(在如果用户不是 None :) 与以下基于 LoginView 类的视图集成链接:https ://github.com/Bouke/django-two-factor-auth/blob/master/two_factor/views/core.py

我相信我需要更改自己的登录视图以调用上面链接中的 loginView 并将我的装饰器和上面提到的自定义代码添加到视图中,但不确定如何执行此操作。非常感谢您的帮助。谢谢

0 投票
0 回答
22 浏览

django-two-factor-auth - 两因素发行人

我的开发服务器上有 django-two-factor-auth 包,但是我注意到谷歌身份验证器应用程序在扫描 QR 码后显示 ip:port。有没有办法将发行者设置为其他东西?