Discourseでユーザーが間違ったプロフィールに乗り換える/接続する

最近、WordPress のユーザーが Discourse の誤ったユーザーと関連付けられるケースが 16 件発生しました。

管理者としてユーザープロフィールにアクセスすると、SSO レコードに誤ったユーザーの詳細が表示されていることが確認できます。このレコードを削除すると、ユーザーが次回 WordPress を介してログインした際に、Discourse の正しいユーザープロフィールにアクセスできるようになります。

このような事例を以前に目にしたことはありますか?

「いいね!」 1

こんにちは、Jake さん、

これは以前、原因が特定できていなかったあなたの問題に関連しているようです。

おそらく、SSO 詳細に含まれるメールアドレスと、ログイン時のメールアドレスとの間に何らかの違いがあったのでしょう。

問題自体は、そのケースで示唆されていたものと同じかもしれません。

require_activation が SSO ペイロードで true に設定されていることが問題の原因ではないかと推測します。

どのようにして詳細が間違っていると判断されたのでしょうか?疑っているわけではありませんが、問題の発生源を特定しようとしています。公開したくない場合は、PM で詳細をお送りください。

「いいね!」 1

エインガスさん、

再び対応いただきありがとうございます。状況は同じようです。

詳細が間違っているとどうしてわかるのですか?

ユーザープロフィール内のユーザーメールと、SSO レコード内のユーザーメールが、移行対象のユーザー間で一致していなかったためです。

ログインした人物のユーザー ID とメールが、間違ったプロフィールに接続されていました。

「いいね!」 1

Jake、返信が遅くなり申し訳ありません。

考えられる原因の一つとして、WordPress インスタンス上で、単一のメールアドレスが複数のユーザーアカウントに関連付けられているケースがあります。これはあり得るでしょうか?

例えば、WordPress でカスタムユーザー登録プロセス(ログイン前にユーザーがメールを確認する必要がないもの)を過去に実施したことはありますか?あるいは、ユーザーのインポートを行ったことはありますか?

これは継続的な問題でしょうか、それとも一部のユーザーに限定された問題でしょうか?これらのユーザーアカウントは古いものですか、それとも新しいものですか?

アンガスさん、ご心配なく!あなたの対応には何の期待もしていませんよ。

ユーザーアカウントは、WooCommerce での購入によって作成されます。以前は Woo がサブサイト上で動作していましたが、その後サイトが統合されました。2 つのサイトはユーザーテーブルを共有していたため、少なくとも理論上は ID は一定に保たれていたはずです。

ウェブサイトのアクセス制御は、私が関与する以前は MemberMouse によって行われていました。その後、約 5 年前に iMember360 へ移行し、最近では Memberium に置き換えられました。これら 2 つのプラグインは本質的に同一で、Infusionsoft という CRM と連携し、CRM からのデータに基づいて各種ページへのアクセスを制御するものです。

これらのプラグインは、一意のメールアドレスを必要とするため、同じメールアドレスを複数のユーザーで共有することは不可能です。

これは継続的な問題ですが、影響を受けるユーザーはごく少数に限られています。これまで「古参」のユーザー 2 名で発生し、最近では作成から 5 日目のアカウントでも発生しました。つまり、これは新規ユーザーだけの問題ではありません。

これは少し難しい問題ですね。あなたの環境で require_activationtrue に設定され、それがこの問題を引き起こしている可能性についていくつかの仮説を持っていますが、考えられるシナリオがいくつかあります。

現在、WP Discourse プラグイン向けの新しいテストスイートの完成に取り組んでおり、SSO 機能にログ記録機能を追加しています。この問題の原因を特定できるような追加のログ記録も実装中です。これらの作業は来月中にプラグインに反映される予定ですので、近々より明確な回答が得られるはずです。