电子邮件登录不起作用

我收到了和这个帖子中一样的“邮件链接已过期”错误:Email login link is too old

抱歉,该邮件登录链接已过期。请点击“登录”按钮,然后使用“忘记密码”选项获取新链接。

我的配置与此不同,因此我认为应该新建一个帖子。

我的主机是 Ubuntu 20.04 VPS。在官方的基于 Docker 的 Discourse 部署之前配置了 HAProxy。HAProxy 负责处理 SSL 证书,但 Discourse 仍设置为强制使用 HTTPS。

我配置了两个站点。其中一个站点的邮件登录功能正常,而另一个则报出上述错误。

我在两个容器中都添加了 TZ 环境变量。无论是在任一容器中运行 date 命令,还是在服务器上运行,返回的时间都一致。

我最近从一台服务器迁移到了另一台。我将整个项目目录复制到新服务器,然后重新构建。当时遇到了一些问题,但我记不清具体是什么了,不过我最终似乎成功让所有服务都运行起来了……

有什么建议吗?

需要我分享我的容器配置文件吗?

您是否尝试过使用不同的用户和邮箱地址?有没有可能您查看的是错误的旧邮箱?我以前也遇到过这个问题。

好的,新用户可以通过电子邮件方式登录。

在排查 rake admin:create 任务时,我创建了一个新的管理员用户。该用户可以通过密码登录。

我成功创建了一个全新账户,该账户在首次通过密码登录后,随后可以通过电子邮件登录。

我遇到的问题是原始管理员用户。刚才我重置了它的密码,得以用密码登录。退出后,我尝试通过电子邮件登录,却再次出现之前的错误。当我再次尝试用密码登录时,系统提示:“您暂时无法登录。我们之前已向您的 emailaddress 发送了激活邮件。请按照邮件中的说明激活您的账户。”

如果我使用另一个管理员用户再次发送密码重置邮件,可以重复上述流程,但最终仍会回到同样的状态。

很奇怪。似乎这个特定用户被分配了一个过期时间错误的登录链接,而其他链接都正常。是否有某个表可以检查异常的链接数据?

是否有办法开启调试模式或其他方式,以帮助追踪问题根源?

好的,现在我更困惑了。在我的原始管理员账户上,我再次重置了密码以登录。然后,我添加并确认了一个不同的电子邮件地址,将其设为主邮箱,并移除了另一个。之后,我登出并尝试通过电子邮件再次登录。这次成功了。

我唯一能想到的就是,现在能用的那个邮箱,可能就是我当初创建这个网站时设置的邮箱。在排查问题的过程中,它不知怎么被改成了另一个地址。不过,我还是不太明白为什么这会导致出现那样的错误……

不管怎样,也许我这些碎碎念将来能帮到其他人……