电子邮件登录链接已过期

我尝试通过 http://mysite.com/users/admin-login 登录。
我的 Discourse 应用向我发送了一封包含登录链接的邮件,我点击该链接后被重定向到一个带有“完成登录”按钮的页面。我点击该按钮后,系统提示:

邮件登录链接已过期

这是怎么回事?我确定该链接根本没有过期。
附注:已设置 “SiteSettings.force_https = false”。
提前感谢。

您的服务器时间是否正确?我指的是运行 Discourse 的服务器。如果服务器时间不正确,可能会导致此问题。

是的,正确,是 UTC。还有其他需要检查的吗?

不是时区,是时间。

当然,时间是正确的。

这很可能是一个错误,因为很少有理由这样做,但它与当前问题无关。

我唯一见过此错误的情况是服务器上的系统时钟偏差了哪怕几分钟。建议您再次仔细检查时间和日期。

他们上面的示例 URL 指定了 HTTP,所以我希望他们实际上并未使用 HTTPS,即使封装发生在另一台设备或代理上。

编辑:在 这个主题 中,您谈到了运行一个分支版本,@Lona_Lee,您现在还在这样做吗?

我想为这个问题提供一个可能的解决方案,供将来搜索的人参考。最近从不同的论坛软件迁移到 Discourse 后,我的几位用户遇到了“登录链接太旧”的问题。

问题出在他们电子邮件地址中的大写字母。Discourse 非常非常不喜欢它们。一个简单的 SET email = LOWER(email) 查询可以立即解决问题。