ログインエラー

以前にもこのエラーを確認しています。チケットシステムで検索しました。

これは、以下のような場合に発生します。

  • require activationtrue に設定されている
  • Discourse に特定のメールアドレスを持つユーザー U1 がいる(外部 ID が A である可能性あり)。
  • DiscourseConnect プロバイダー側に、同じメールアドレスで異なる外部 ID(B)を持つユーザー U2 がいる。

ユーザーがログインすると、Discourse は外部 ID B を持つユーザーが存在するかどうかを確認しますが、存在しません。
通常、Discourse は次のステップとしてメールアドレスで照合を行いますが、require activation が設定されているため、メールアドレスは信頼されず、このステップはスキップされます。これにより、アカウント乗っ取りが可能になるため、ユーザー U1 とは関連付けられません。
そのため、Discourse は新しいユーザーを作成しようとしますが、そのメールアドレスは既にユーザー U1 によって使用されているため失敗します。

メールアドレスが存在するものの信頼できない場合に、より適切なエラーメッセージが表示されると良いでしょう。また、なぜ一般的な Rails エラーが表示されるのかも不明です。

解決策:

  • DiscourseConnect プロバイダー側のメールアドレスが検証済みで信頼できる場合は、require activationfalse に設定します。
    または
  • ユーザー U1 の外部 ID を B に変更します。
    または
  • ユーザー U1 のメールアドレスを別のものに変更します。

このトピックがこのエラーを検索するユーザーに見つけられるように、「求めていた変更は却下されました」というテキストを追加します。

「いいね!」 7