[英]Djoser: Password Reset with Username
我已经使用 Django 开发了一个应用程序。 它使用 Djoser 进行用户身份验证。
问题:我允许用户使用现有的电子邮件地址进行注册,即可能有多个用户使用相同的电子邮件 ID。 所以我无法使用电子邮件字段重置密码。 我必须仅使用用户名或用户名和电子邮件的组合。
我怎样才能做到这一点?
注意:- 使用基本端点/users/reset_password/
但它只需要电子邮件来重置密码。
一种解决方案是向 djoser SendEmailResetSerializer添加另一个字段。 并在SendEmailResetSerializer.get_user 方法或 validate 方法中执行额外的验证。
例子:
DJOSER = {
'SERIALIZERS': {
'password_reset': 'path.to.CustomSendEmailResetSerializer',
},
}
class CustomSendEmailResetSerializer(SendEmailResetSerializer):
username = serializers.CharField(required=True)
class CustomSendEmailResetSerializer(SendEmailResetSerializer):
username = serializers.CharField(required=True)
def get_user(self, is_active=True):
# Retrieve user here.
return user
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.