【问题标题】:Reset password stuck on invalid email重置密码卡在无效电子邮件上
【发布时间】:2016-09-20 00:48:43
【问题描述】:

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

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

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

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

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

是否有某种电子邮件队列包含我需要刷新的不正确地址?

【问题讨论】:

  • 您可以尝试清除会话 cookie 看看是否有效吗?
  • @solarissmoke 成功了。谢谢,我没有想到。你愿意把它写成答案,这样我就可以给你加分了吗?
  • 我只是想弄清楚为什么会这样,并会发布一个带有解释的答案。

标签: python django email weblate


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2019-05-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    • 2020-02-15
    • 1970-01-01
    • 2017-02-26
    • 1970-01-01
    • 2012-03-09
    相关资源
    最近更新 更多