使用REST框架JWT检索密码



是否可以使用django jwt rest框架创建密码恢复链接?

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

或我需要使用django管理员的功能来执行此操作?

非常感谢。

这不是您在Django JWT REST框架中所能做的。您需要编写自定义视图以实现此行为。

您可以子类auth.PasswordResetView并创建一个新的JWT代币,该jwt代币在密码重置链接中使用,该链接发送给 Active 用户的电子邮件地址。

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来验证令牌未使用/已过期。

另一个选项是使用djoser。该库将允许您配置密码重置端点,用户创建,密码更改,配置电子邮件等。它也与JWT兼容。

最新更新