Fedora アカウントとユーザーアカウントを同期させるために OAuth2 を使用しています。あるユーザーが、$REASONS により、Discourse でそのメールアドレスを使用したくないと指摘しています。ここでユーザーがメールアドレスを変更することを許可した場合の影響は何でしょうか?同じ方法でログインし続けることは可能でしょうか?注意すべき落とし穴はありますか?
ありがとうございます!
Fedora アカウントとユーザーアカウントを同期させるために OAuth2 を使用しています。あるユーザーが、$REASONS により、Discourse でそのメールアドレスを使用したくないと指摘しています。ここでユーザーがメールアドレスを変更することを許可した場合の影響は何でしょうか?同じ方法でログインし続けることは可能でしょうか?注意すべき落とし穴はありますか?
ありがとうございます!
Discourse でメールアドレスを変更し、「代替メールを追加」リンクをクリックして設定ページから OAuth2 を追加できます。
確認したところ、二次メールアドレスで Google OAuth2 認証を行うと、このアカウントにログインすることができました。
わかりました、ありがとうございます。OAuth ログインのみに限定したいのですが、これで何か支障は出ますか?
正直なところ、確信はありません。ユーザーがメールアドレスを変更した後、それをセカンダリとして追加する前にOAuthでログインしようとすると、新しいアカウントが作成されてしまうと思います。
ああ、それはまずいですね!もしかして、メインのメールアドレスを固定したまま、サブのメールアドレスを追加できるようにする方法はありませんか?
そうですね。 2番目の住所を追加し、その後でプライマリ住所を切り替えることができます。実際に試してみる必要があります。
動作するようです。
待ってください、すみません、それは私の質問に答えていないような気がします。私が明確に説明できていなかったのかもしれません。現在、email editable はオフになっています。これにより、メインのメールアドレスが固定され、セカンダリアドレスの追加も防止されています。メインアドレスを変更すると問題が発生する(「新しいアカウントが作成されてしまう」)とのことですが、メインアドレスの変更を許可せずに、メッセージの返信に使えるセカンダリメールアドレスの追加を有効にする方法はありますか?
ユーザーがメールアドレスを編集できるようにするか、そうでないかのどちらかです。
プライマリアドレスは、Discourse がメールを送信するアドレスです。
申し訳ありません、冒頭部分を言い直させてください。Discourse から届くメールがその受信トレイに送られることについては、彼女は問題ないと考えています。ただし、そのアドレスからメールを「送信」するように、彼女のメールクライアントは設定されていません。私の理解では、彼女の普段使っているアドレスをサブアドレスとして追加すれば、Discourse は受信した返信(現在はメールアドレスが一致しないとして拒否されているもの)を適切に関連付けるはずです。
これで理解していただけましたか?
はい、サブメールアドレスはここで機能するはずです。ただし、その影響については確信が持てません。プライマリメールアドレスをいじくるのは避けたほうがよいかもしれません。試してみて、どうなるか見てみましょうか?
ありがとうございます!ユーザーがサブメールアドレスを追加できるようにしつつ、プライマリメールアドレスの変更を許可しない方法はありますか?
はい、メールが有効になったら、アカウント設定で代替メールアドレスを追加できます。メタで試してみてください。
ただし、ここではプライマリ住所も変更できるんですよね?私たちのサイトでも同じことが起こりました——email editable 設定を変更したら、セカンダリ住所を追加できるだけでなく、プライマリ住所も変更できるようになりました。ユーザーに最初の操作だけを行わせたいのですが、どうすればよいでしょうか?
もし私が鈍感なら申し訳ありません!
現時点ではその柔軟性はないと思います。最も近い対応としては、CSS を使ってプライマリ(主要)メールアドレスの変更を無効化することでしょう。
OAuth は特殊なキーで紐付けられているため、プライマリメールアドレスをいじっても影響は極めて小さく、ログインは引き続き機能し、メインの Fedora アカウントに関連付けられたままになります。
ああ、なるほど。上記の議論を見て、重複アカウントが作成されるかもしれないと思いました。
他に気をつけるべきことはありますか?
わかりませんね。ただ、もう一つ知っておいてほしいのは、アカウントのマージを行う管理インターフェースを構築しているということです。そのため、万が一問題が発見されても、自分で解決することができます。
ありがとう、サム。早速調べてみましょう!