【发布时间】:2018-02-07 12:21:53
【问题描述】:
是否可以使用 Django JWT rest 框架来创建密码恢复链接?
一个例子是通过电子邮件恢复密码并为其创建访问令牌。
或者我需要使用 Django admin 的功能来执行此操作吗?
非常感谢。
【问题讨论】:
标签: django django-rest-framework
是否可以使用 Django JWT rest 框架来创建密码恢复链接?
一个例子是通过电子邮件恢复密码并为其创建访问令牌。
或者我需要使用 Django admin 的功能来执行此操作吗?
非常感谢。
【问题讨论】:
标签: django django-rest-framework
这不是你可以单独在 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 进行子类化,以验证令牌未使用/未过期。
【讨论】:
另一种选择是使用Djoser。 该库允许您配置密码重置端点、用户创建、密码更改、配置电子邮件等。它还与 JWT 兼容。
【讨论】: