ユーザーがサインアップすると、アクティベーションメールは正常に機能します。しかし、サインインを試みてアクティベーションメールを再送信すると、以下の本番ログが表示されます。
Started POST "/u/action/send_activation_email" for (removed ip and timestamp)
Processing by UsersController#send_activation_email as */*
Completed 404 Not Found in 2ms (Views: 0.1ms | ActiveRecord: 0.0ms | Allocations: 542)
このエラーは、3.2.0.beta1-devを実行しているすべてのコンテナで発生します。「production_errors.log」は空です。
再現手順:
デフォルトのフォームでサインアップします。
アクティベーションメールを無視して、サインインを試みます。
ポップアップ「まだログインできません。以前にアクティベーションメールを送信しました…」で「アクティベーションメールを再送信」をクリックします。
「エラーが発生しました:要求されたURLまたはリソースが見つかりませんでした。」
「OK」をクリックすると、次のポップアップが表示されます。「アクティベーションメールをもう一度お送りしました…」(ただし、2通目のアクティベーションメールは実際には送信されません)
send_activation_email関数/アクションがレート制限されていることがわかりました。
def send_activation_email
if current_user.blank? || !current_user.staff?
RateLimiter.new(nil, "activate-hr-#{request.remote_ip}", 30, 1.hour).performed!
RateLimiter.new(nil, "activate-min-#{request.remote_ip}", 6, 1.minute).performed!
end
これが404エラーの原因になりますか?この問題をデバッグするために確認できる他のログはありますか?
「いいね!」 1
simon
2023 年 9 月 19 日午後 10:06
2
ローカル開発サイトでこれをテストしたところ、問題は、アカウントが作成された後に、アクティベーションメールのリンクをクリックしていないユーザーがユーザー名/パスワードでログインしようとしたときに /u/action/send_activation_email に対して行われる POST リクエストで、username または email パラメータのどちらも設定されないことのようです。
代わりに、アカウント登録直後に表示されるアカウント作成済みページから「アクティベーションメールを再送信」ボタンをクリックした場合、リクエストの username パラメータが設定されます。参考までに、機能しているボタンはこちらです。
機能しているリクエストの場合、POST リクエストのパラメータは、ユーザーがサインアップフォームを完了したときに入力した値に基づいて設定されているのではないかと推測します。
404 エラーはここでトリガーされています。
「いいね!」 1
simon
2023 年 9 月 28 日午後 7:08
4
管理画面/ユーザーページからアカウントが無効化されたユーザーが、ログインを試みて「アクティベーションメールを再送信」ボタンをクリックしても、アクティベーションメールをトリガーできないという問題も発生していることを追記しておきます。
これにより、上記で報告されたものと同じエラーが発生します。
「いいね!」 2
david
(David Taylor)
2023 年 10 月 2 日午前 11:39
7
レポートありがとうございます、@john.sanchirico 、そして詳細な分析をしてくださった@simonさん
これは以下で修正されます。
main ← resend-activation-fix
opened 11:38AM - 02 Oct 23 UTC
Regressed as part of the refactoring in https://github.com/discourse/discourse/c… ommit/7df4eab03895d7d9b8074619ef32b49224c65951. This commit also introduces a system spec for the activation flow.
「いいね!」 2
nat
(Natalie T)
クローズされました:
2023 年 10 月 4 日午前 12:00
8
このトピックは20時間後に自動的に閉じられました。新しい返信はもう許可されていません。