이메일 로그인 안 됩니다

이 스레드(Email login link is too old)와 동일한 "이메일 링크가 너무 오래되었습니다"라는 메시지를 받고 있습니다.

죄송합니다. 해당 이메일 로그인 링크가 너무 오래되었습니다. 로그인 버튼을 선택한 후 '비밀번호를 잊으셨나요'를 통해 새 링크를 받으세요.

제 환경 설정이 꽤 다르다고 생각해서 새로운 스레드를 시작했습니다.

제 호스트는 Ubuntu 20.04 VPS입니다. 공식 Docker 기반 설정 앞에 HAProxy가 구성되어 있습니다. SSL 인증서는 HAProxy가 처리하지만, Discourse는 여전히 HTTPS를 강제하도록 설정되어 있습니다.

두 개의 사이트를 구성했습니다. 한 사이트에서는 이메일 로그인이 정상적으로 작동하지만, 다른 사이트에서는 해당 오류로 실패합니다.

두 컨테이너 모두에 TZ 환경 변수를 추가했습니다. 어느 컨테이너나 서버에서 date를 실행해도 모두 동일한 시간을 반환합니다.

최근 한 서버에서 다른 서버로 마이그레이션을 수행했습니다. 프로젝트 디렉터리 전체를 새 서버로 복사한 후 다시 빌드했습니다. 몇 가지 문제를 겪었지만, 무엇이었는지 기억이 나지 않습니다. 결국 모든 것을 정상적으로 구동시킨 것 같았지만요…

어떤 아이디어가 있을까요?

컨테이너 파일을 공유해야 할까요?

다른 사용자 이름과 이메일 주소로 시도해 보셨나요? 혹시 잘못되거나 오래된 이메일을 보고 계신 건 아닌가요? 저도 이전에 비슷한 문제를 겪어 본 적이 있습니다.

네, 새 사용자는 이메일 방식으로 로그인할 수 있습니다.

rake admin:create 작업을 통해 문제를 해결하던 중 실수로 새로운 관리자 계정을 하나 생성하게 되었습니다. 이 계정은 비밀번호로 로그인할 수 있습니다.

새로운 계정을 하나 더 생성해 보았는데, 처음에는 비밀번호로 로그인한 후 이메일 방식으로 로그인하는 데 성공했습니다.

문제가 있는 계정은 원래 있던 관리자 계정입니다. 방금 비밀번호를 재설정했는데, 덕분에 비밀번호로 로그인할 수 있었습니다. 로그아웃한 후 이메일 방식으로 로그인하려고 하니 이전과 동일한 오류가 발생했습니다. 다시 비밀번호로 로그인하려고 하니 "아직 로그인할 수 없습니다. 이전에 emailaddress로 활성화 이메일을 보냈습니다. 계정 활성화하려면 해당 이메일의 지시를 따르세요."라는 메시지가 표시됩니다.

다른 관리자 계정으로 비밀번호 재설정 이메일을 다시 보내면, 같은 과정을 반복할 수 있지만 결국 동일한 상태에 도달합니다.

이상하네요. 이 계정 하나만 잘못된 만료일이 지정된 로그인 링크를 받는 것 같은데, 다른 모든 링크는 올바르게 설정되어 있습니다. 잘못된 링크 데이터를 확인할 수 있는 테이블이 있을까요?

무엇이 문제인지 파악하는 데 도움이 될 디버깅 모드나 유사한 기능이 있을까요?

음, 이제 더 혼란스럽네요. 원래 관리자 계정의 비밀번호를 다시 초기화해서 로그인했습니다. 그 다음 다른 이메일 주소를 추가하고 확인했습니다. 이후 그 이메일을 기본으로 설정하고 다른 이메일은 삭제했습니다. 그런 다음 로그아웃을 하고 이메일로 다시 로그인하려고 했는데, 이번에는 성공했습니다.

생각나는 건, 정상적으로 작동하는 이메일이 제가 처음 이 사이트를 만들었을 때 설정했던 이메일이라는 겁니다. 어딘가에서 문제 해결을 하던 중 다른 주소로 바뀌어 버린 것 같습니다. 그래도 왜 그런 오류가 발생했는지는 여전히 모르겠네요…

어쨌든, 제 이런 끄적임이 나중에 다른 분들에게 도움이 되었으면 좋겠습니다…