【问题标题】:Retrieve password using rest framework JWT使用rest框架JWT检索密码
【发布时间】:2018-02-07 12:21:53
【问题描述】:

是否可以使用 Django JWT rest 框架来创建密码恢复链接?

一个例子是通过电子邮件恢复密码并为其创建访问令牌。

或者我需要使用 Django admin 的功能来执行此操作吗?

非常感谢。

【问题讨论】:

    标签: django django-rest-framework


    【解决方案1】:

    这不是你可以单独在 Django JWT REST 框架中做的事情。您需要编写自定义视图来实现此行为。

    您可以将auth.PasswordResetView 子类化并手动创建一个新的 JWT 令牌,该令牌用于发送到活动用户的电子邮件地址的密码重置链接。

    django-rest-framework-jwt 中给出了以下示例,用于手动创建 JWT 令牌。

    # Source: https://jpadilla.github.io/django-rest-framework-jwt/#creating-a-new-token-manually
    from rest_framework_jwt.settings import api_settings
    
    jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
    jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
    
    payload = jwt_payload_handler(user)
    token = jwt_encode_handler(payload)
    

    您还需要对auth.PasswordResetConfirmView 进行子类化,以验证令牌未使用/未过期。

    【讨论】:

    • 您的链接显示 404 错误,请更新,先生,谢谢
    • 感谢@NikhilBhardwaj 让我意识到这一点。该项目已移至不同的存储库。因此链接断开。
    【解决方案2】:

    另一种选择是使用Djoser。 该库允许您配置密码重置端点、用户创建、密码更改、配置电子邮件等。它还与 JWT 兼容。

    【讨论】:

      猜你喜欢
      • 2015-10-19
      • 2018-08-26
      • 1970-01-01
      • 2018-02-06
      • 2015-08-18
      • 2015-08-13
      • 2019-02-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多