我已经成功安装了 django_two_factor_auth:令牌登录、备份令牌和通过 Twilio 的 SMS 似乎都可以正常工作。不过,我的用户不会容忍每次登录都必须输入他们的令牌。
我的需求与以下讨论的类似: https ://github.com/Bouke/django-two-factor-auth/issues/56
我希望为用户提供在成功验证后将 OTP 验证推迟 30 天的选项。
为此,我安装了 django_agent_trust。如果安装了 django_agent_trust,我修补了 AuthenticationTokenForm 以添加 BooleanField:
(two_factor/forms.py,在 AuthenticationTokenForm 中)
try:
from django_agent_trust import trust_agent
trust_this_agent = forms.BooleanField(label=_("Trust this browser for 30 days"),
required=False)
except:
pass
我已经能够通过使用 django_agent_trust 的 django_agent_trust.trust_agent API 无条件地设置和重置 is_trusted 标志。
问题是找出在哪里捕获用户选择的 BooleanField 值。我在表单向导的某个地方迷路了。
如果我认为您的论点有道理,我会接受质疑我的整体方法是否明智的答案。我在这里缺少什么吗?