El inicio de sesión por correo electrónico no funciona

Estoy recibiendo el mismo mensaje de “El enlace de correo electrónico es demasiado antiguo” que en este hilo: Email login link is too old

Lo sentimos, el enlace de inicio de sesión por correo electrónico es demasiado antiguo. Selecciona el botón Iniciar sesión y utiliza "Olvidé mi contraseña" para obtener un nuevo enlace.

Mi configuración es lo suficientemente diferente como para pensar que debería abrir un nuevo hilo.

Mi servidor es un VPS con Ubuntu 20.04. HAProxy está configurado frente a la instalación oficial basada en Docker. HAProxy gestiona los certificados SSL, pero Discourse sigue configurado para forzar HTTPS.

Tengo dos sitios configurados. En uno, el inicio de sesión por correo electrónico funciona perfectamente. En el otro, falla con ese error.

Añadí la variable de entorno TZ a ambos contenedores. Cuando ejecuto date en cualquiera de los contenedores o en mi servidor, todos devuelven la misma hora.

Recientemente migré de un servidor a otro. Simplemente copié todo el directorio del proyecto al nuevo servidor y luego lo reconstruí. Tuve algunos problemas, pero no recuerdo cuáles eran; finalmente logré poner todo en marcha, al menos eso creía…

¿Alguna idea?

¿Debería compartir mis archivos de contenedor?

¿Has probado esto con un usuario y una dirección de correo electrónico diferentes? ¿Hay alguna posibilidad de que estés mirando el correo electrónico incorrecto o más antiguo? Yo también he tenido este problema en el pasado.

Ok, así que un nuevo usuario puede iniciar sesión mediante el método de correo electrónico.

Mientras solucionaba problemas con la tarea rake admin:create, terminé creando un nuevo usuario administrador. Ese usuario puede iniciar sesión mediante contraseña.

Pude crear una cuenta completamente nueva, y esa cuenta pudo iniciar sesión por correo electrónico después de que inicialmente inicié sesión con contraseña.

Mi usuario administrador original es con el que tengo problemas. Acabo de poder restablecer su contraseña. Eso me permitió iniciar sesión con contraseña. Después de cerrar sesión, intenté iniciar sesión por correo electrónico. Eso arrojó el mismo error que antes. Cuando intenté iniciar sesión con contraseña nuevamente, dice: “Aún no puedes iniciar sesión. Anteriormente te enviamos un correo de activación a emailaddress. Sigue las instrucciones de ese correo para activar tu cuenta.”

Si uso mi otro usuario administrador para enviar nuevamente el correo de restablecimiento de contraseña, puedo repetir el proceso y terminar en el mismo lugar.

Estranho. Es como si a este usuario se le asignara un enlace de inicio de sesión con una fecha de expiración incorrecta, pero todos los demás enlaces están configurados correctamente. ¿Hay alguna tabla que pueda consultar para verificar datos de enlaces defectuosos?

¿Existe alguna forma de activar la depuración o algo similar para ayudar a rastrear lo que está sucediendo?

Vale, ahora estoy más confundido. En mi usuario de administrador original, restablecí la contraseña nuevamente para iniciar sesión. Luego agregué y confirmé un correo electrónico diferente. Después, lo establecí como principal y eliminé el otro. Tras eso, cerré sesión e intenté iniciar sesión de nuevo mediante correo electrónico. Esta vez funcionó.

Lo único que se me ocurre es que el correo que funciona es el que creo que establecí mucho tiempo atrás, cuando creé este sitio. De alguna manera, en el proceso de solución de problemas, se cambió a una dirección diferente. Todavía no estoy seguro de por qué eso habría causado esos errores, aunque…

Bueno. Quizás algo de mis divagaciones ayude a alguien más en el futuro…