メールログインが機能しません

このスレッドと同じ「メールリンクが古すぎます」というメッセージが表示されます: Email login link is too old

申し訳ありませんが、このメールログインリンクは古すぎます。[ログイン] ボタンを選択し、「パスワードを忘れた場合」を使用して新しいリンクを取得してください。

私の環境設定は十分に異なるため、新しいスレッドを立てるべきだと考えました。

私のホストは Ubuntu 20.04 の VPS です。公式の Docker ベースのセットアップの前に HAProxy が設定されており、HAProxy が SSL 証明書を取り扱っていますが、Discourse は依然として HTTPS を強制するように設定されています。

2 つのサイトが構成されています。一方ではメールログインが正常に機能しますが、もう一方ではそのエラーで失敗します。

両方のコンテナに TZ 環境変数を追加しました。どちらのコンテナ内、あるいはサーバー上で date を実行しても、すべて同じ時刻を返します。

最近、1 つのサーバーから別のサーバーへ移行しました。プロジェクトディレクトリ全体を新しいサーバーにコピーし、再構築しました。いくつかの問題に遭遇しましたが、何だったか思い出せません。最終的にはすべてが起動したと思っていたのですが…

何かアイデアはありますか?

コンテナの設定ファイルを共有すべきでしょうか?

別のユーザーとメールアドレスでお試しいただきましたか?もしかして、間違った古いメールを見ていませんか?私自身も以前、同じ問題に遭遇したことがあります。

はい、新しいユーザーはメール認証でログインできます。

rake admin:create タスクのトラブルシューティング中に、新しい管理者ユーザーを作成してしまいました。そのユーザーはパスワードでログイン可能です。

新しくアカウントを作成したところ、最初にパスワードでログインした後、そのアカウントはメール認証でログインできました。

問題が発生しているのは、元の管理者ユーザーです。今さっき、そのユーザーのパスワードをリセットしました。これでパスワードでのログインは可能になりました。しかし、ログアウト後、メールでのログインを試みると、以前と同じエラーが発生します。再度パスワードでのログインを試みると、「まだログインできません。以前、メールアドレス へアクティベーションメールを送信しました。そのメールに記載された手順に従ってアカウントを有効化してください。」というメッセージが表示されます。

他の管理者ユーザーを使って再度パスワードリセットメールを送信すると、同じプロセスを繰り返して結局同じ状態になってしまいます。

不思議です。まるで、このユーザーだけが有効期限が正しくないログインリンクを割り当てられているようですが、他のすべてのリンクは正しく設定されています。不良なリンクデータを確認できるテーブルなどはありますか?

何が起きているかを特定するために、デバッグ機能を有効にするような方法はありますか?

わかりました、ますます混乱しています。元の管理者ユーザーのパスワードを再度リセットしてログインしました。その後、別のメールアドレスを追加し、確認しました。それをプライマリに設定し、他のアドレスを削除しました。その後ログアウトし、再度メールアドレスでログインを試みました。今回は成功しました。

考えられるのは、現在機能しているメールアドレスは、このサイトを最初に作成した際に設定したものだということです。トラブルシューティングの過程で、何らかの理由で別のアドレスに変更されてしまったのでしょう。しかし、なぜそれがそのようなエラーを引き起こすのか、いまだにわかりません……

とにかく。私の散漫な発言が、将来的に誰かの助けになれば幸いです。