The discussion revolves around the error “Email login link is too old” when attempting to log in through a link sent by the Discourse app. Lona_Lee reports that the server clock is set correctly to UTC, but still encounters the issue. codinghorror and pfaffman suggest that the server clock being incorrect could cause this behavior, despite Lona_Lee confirming the time is correct. pfaffman also notes that SiteSettings.force_https = false is likely unrelated to the issue. Stephen inquires if Lona_Lee is still running a forked version of Discourse. stuwest shares a possible solution, where uppercase letters in email addresses caused the issue, and resolving it by converting email addresses to lowercase.
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.
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.
I wanted to add a possible solution to this, for anyone searching in future. A couple of my users were having the ‘login link too old’ issue after a recent migration from different forum software to Discourse.
The issue was uppercase letters in their email addresses. Discourse really, really doesn’t like them. A quick SET email = LOWER(email) query solved the problem instantly.