oauth2ユーザーがメールアドレスを変更した場合の示唆することは何ですか?

Fedora アカウントとユーザーアカウントを同期させるために OAuth2 を使用しています。あるユーザーが、$REASONS により、Discourse でそのメールアドレスを使用したくないと指摘しています。ここでユーザーがメールアドレスを変更することを許可した場合の影響は何でしょうか?同じ方法でログインし続けることは可能でしょうか?注意すべき落とし穴はありますか?

ありがとうございます!

Discourse でメールアドレスを変更し、「代替メールを追加」リンクをクリックして設定ページから OAuth2 を追加できます。

確認したところ、二次メールアドレスで Google OAuth2 認証を行うと、このアカウントにログインすることができました。

わかりました、ありがとうございます。OAuth ログインのみに限定したいのですが、これで何か支障は出ますか?

正直なところ、確信はありません。ユーザーがメールアドレスを変更した後、それをセカンダリとして追加する前にOAuthでログインしようとすると、新しいアカウントが作成されてしまうと思います。

ああ、それはまずいですね!もしかして、メインのメールアドレスを固定したまま、サブのメールアドレスを追加できるようにする方法はありませんか?

そうですね。 2番目の住所を追加し、その後でプライマリ住所を切り替えることができます。実際に試してみる必要があります。

動作するようです。

待ってください、すみません、それは私の質問に答えていないような気がします。私が明確に説明できていなかったのかもしれません。現在、email editable はオフになっています。これにより、メインのメールアドレスが固定され、セカンダリアドレスの追加も防止されています。メインアドレスを変更すると問題が発生する(「新しいアカウントが作成されてしまう」)とのことですが、メインアドレスの変更を許可せずに、メッセージの返信に使えるセカンダリメールアドレスの追加を有効にする方法はありますか?

ユーザーがメールアドレスを編集できるようにするか、そうでないかのどちらかです。

プライマリアドレスは、Discourse がメールを送信するアドレスです。

申し訳ありません、冒頭部分を言い直させてください。Discourse から届くメールがその受信トレイに送られることについては、彼女は問題ないと考えています。ただし、そのアドレスからメールを「送信」するように、彼女のメールクライアントは設定されていません。私の理解では、彼女の普段使っているアドレスをサブアドレスとして追加すれば、Discourse は受信した返信(現在はメールアドレスが一致しないとして拒否されているもの)を適切に関連付けるはずです。

これで理解していただけましたか?

はい、サブメールアドレスはここで機能するはずです。ただし、その影響については確信が持てません。プライマリメールアドレスをいじくるのは避けたほうがよいかもしれません。試してみて、どうなるか見てみましょうか?

ありがとうございます!ユーザーがサブメールアドレスを追加できるようにしつつ、プライマリメールアドレスの変更を許可しない方法はありますか?

はい、メールが有効になったら、アカウント設定で代替メールアドレスを追加できます。メタで試してみてください。

ただし、ここではプライマリ住所も変更できるんですよね?私たちのサイトでも同じことが起こりました——email editable 設定を変更したら、セカンダリ住所を追加できるだけでなく、プライマリ住所も変更できるようになりました。ユーザーに最初の操作だけを行わせたいのですが、どうすればよいでしょうか?

もし私が鈍感なら申し訳ありません!

現時点ではその柔軟性はないと思います。最も近い対応としては、CSS を使ってプライマリ(主要)メールアドレスの変更を無効化することでしょう。

OAuth は特殊なキーで紐付けられているため、プライマリメールアドレスをいじっても影響は極めて小さく、ログインは引き続き機能し、メインの Fedora アカウントに関連付けられたままになります。

ああ、なるほど。上記の議論を見て、重複アカウントが作成されるかもしれないと思いました。

他に気をつけるべきことはありますか?

わかりませんね。ただ、もう一つ知っておいてほしいのは、アカウントのマージを行う管理インターフェースを構築しているということです。そのため、万が一問題が発見されても、自分で解決することができます。

ありがとう、サム。早速調べてみましょう!