重置密码卡在无效电子邮件上

Reset password stuck on invalid email

我在 Weblate 安装(基于 Django 的翻译系统)中注册了一个用户,并为该用户输入了错误的电子邮件地址。在尝试发送重置密码电子邮件后,我收到了一封来自邮件提供商的 Delivery Status Notification (Failure) 电子邮件,错误代码为 550 Requested action not taken: mailbox unavailable.

之后,无论我在重置密码电子邮件表单中输入哪个电子邮件地址(甚至其他用户已经注册),Django 都会尝试将重置电子邮件发送到那个不正确的电子邮件地址。我收到来自邮件提供商的类似退回邮件。发送的邮件目标地址相同,验证id参数相同url,但verification_code不同

我试着查看日志,唯一感兴趣的是:

INFO:weblate:sending notification reset on 2414792abd0d4bcb92fd654c2f020ac0 to user@provider.com

…这也没有帮助我搜索 Django 的源代码。

是否有某种电子邮件队列包含我需要清除的错误地址?

Weblate 不使用 Django 的内置密码重置功能,而是使用 python-social-auth。查看 the code 似乎它使用会话变量来传递信息 to/from python-social-auth。

问题是,如果会话已经存在(即用户请求重设密码),那么无论您在表单中提交的电子邮件地址是什么,如果您提交新请求,它都不会刷新会话。

解决方案:清除您的 cookie。可能也值得提交错误报告?