我使用电子邮件实现了 django 密码重置,但目前希望仅限于用户名,以便用户只能使用用户名更改密码。尝试过django built-in和 plugin但无法设置为仅 username 。如有任何建议,我们将不胜感激
最佳答案
编写您自己的重置密码代码。几乎您需要编写的唯一代码是获取用户、生成用于重置密码的唯一链接并发送电子邮件的第一步。
Django 使用PasswordResetForm 来实现这一点。源代码为here (第 242 - 306 行)。将此代码复制/粘贴到您的 forms.py
(包括所需的导入)并修改它以接受用户名而不是电子邮件。
然后在您的代码中验证您的PasswordResetForm 并调用save()
来生成唯一的链接并发送邮件。
form = YourPasswordResetForm(request.POST)
if form.is_valid():
form.save()
请记住始终返回成功消息,即使用户不存在且电子邮件未发送,否则您将泄露有关注册用户名的信息。
关于python - 只能通过用户名重置密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48243168/