Link de login por e-mail expirou

Estou tentando fazer login em http://mysite.com/users/admin-login.

Então, meu aplicativo Discourse me envia um e-mail com um link de login. Ao clicar no link, sou redirecionado para uma página com um botão “concluir login”. Ao clicar no botão, aparece a mensagem:

o link de login por e-mail expirou

O que está errado? Tenho certeza de que o link não está expirado.

Observação: a configuração “SiteSettings.force_https = false” foi definida.

Obrigado antecipadamente.

O relógio do seu servidor está correto? Refiro-me ao servidor onde o Discourse está sendo executado. Se o relógio do servidor estiver errado, isso pode causar esse comportamento.

Sim, está correto, UTC.
Há mais alguma coisa que eu precise verificar?

Não o fuso horário, o horário.

Claro, o horário está correto.

Isso provavelmente é um erro, pois há poucos motivos para fazer isso, mas não está relacionado a este problema.

A única vez que vi esse erro foi quando o relógio do sistema no servidor estava fora, mesmo que por alguns minutos. Recomendo que verifique novamente a hora e a data com muito cuidado.

A URL de exemplo acima especifica HTTP, então espero que eles não estejam realmente usando HTTPS, mesmo que a encapsulação ocorra em outro dispositivo/proxy.

Edição: Neste tópico, você falou sobre executar um fork. Você ainda está fazendo isso, @Lona_Lee?

Gostaria de adicionar uma possível solução para isso, para quem pesquisar no futuro. Alguns dos meus usuários estavam tendo o problema de ‘link de login muito antigo’ após uma migração recente de um software de fórum diferente para o Discourse.

O problema eram letras maiúsculas nos endereços de e-mail deles. O Discourse realmente, realmente não gosta delas. Uma consulta rápida SET email = LOWER(email) resolveu o problema instantaneamente.