【问题标题】:Django Rest Framework and django rest framework simplejwt two factor authenticationDjango Rest Framework 和 django Rest Framework simplejwt 两因素身份验证
【发布时间】:2021-09-09 15:10:10
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: django django-rest-framework jwt two-factor-authentication django-two-factor-auth


    【解决方案1】:

    我解决这个问题的方法是向用户模型添加一个确认代码字段,并使用一个视图处理登录,有两种情况:

    • 第一种情况,我在请求中有用户名和密码,但没有代码,在检查用户名和密码后,我将手动创建并返回一个短暂的访问令牌,仅没有刷新令牌(例如,它将在 3 分钟内到期),我'd 创建一个确认码,将其保存在数据库中并通过邮件或短信等方式发送...

    • 第二种情况,用户使用请求中的访问令牌发布收到的确认码,但没有用户名和密码,这样我可以确保用户有可用的访问令牌和确认码,然后我会返回访问令牌并像往常一样刷新令牌,在这一步中,我会在确认登录后将访问令牌列入黑名单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-01
      • 2013-05-03
      • 1970-01-01
      • 2015-12-26
      • 2020-04-10
      • 2015-06-01
      • 2017-01-25
      • 2018-07-04
      相关资源
      最近更新 更多