Email login link is too old

I’m trying to login through http://mysite.com/users/admin-login.
so my discourse app sends me an email including a login link, so I click the link and am redirected to the page that has a “finish login” button. I click the button, and it says

email login link is too old

what’s wrong with it? I’m positive that the link is not old at all.
FYI, “SiteSettings.force_https = false” has been set.
Thanks in advance.

Is your server clock correct? By that I mean the server that Discourse is running on. If the server clock is wrong, it could cause this behavior.

Yes. it’s correct, UTC.
Anything else I have to check?

Not the time zone, the time.

1 个赞

Of course, the time is correct.

That’s likely a mistake, as there are few reasons to do this, but it’s unrelated to this issue.

The only time that I have seen this error is when the system clock on the server is off by even a few minutes. I recommend that you again check the time and date very carefully.

Their example url above specifies HTTP, so I’m hoping they aren’t actually using HTTPS, even if the encapsulation happens on another device/proxy.

Edit: In this topic you talked about running a fork, are you still doing that @Lona_Lee?

2 个赞

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

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

1 个赞