SSO - カスタムピクチャが一度更新されると、その後更新されない

SSOを実装したPhp/LaravelプラットフォームとDiscourseを連携させています。ユーザーのカスタム画像は一度しか更新されません。しかし、Laravelプラットフォームでプロフィール画像を変更しても、ログアウトして再度ログインしても、Discourseのカスタム画像は更新されません。

'avatar_force_update’をtrueにしても、カスタム画像は上書きされません。

更新情報です。

SSOレコードでプロフィール写真のURLが更新されていることは確認できましたが、ログアウトして再度ログインしても、Discourseには新しいプロフィール画像が反映されません。

ブラウザを再読み込みするとどうなりますか?

discourse_connect_overrides_avatar のサイト設定は有効になっていますか?

「いいね!」 1

返信ありがとうございます。ブラウザをリロードしたり、シークレットウィンドウで開いたり、ログアウトして再度ログインしても更新されません。

前述の通り、初回のみ更新されます。例えば、

  • 新規ユーザーがアバターを持っており、SSOを使用して初めてDiscourseに接続する場合、アバターは更新されます。
  • または、ユーザーが当初アバターを持っておらず、プラットフォームでアバターを更新した場合、それはDiscourseに反映されます。
  • しかし、ユーザーがアバターを持っており、プラットフォームで新しいアバターに更新した場合、再度ログアウト/ログインしても、または別のブラウザで試しても、Discourseでは更新されません。SSOレコードでプロフィール画像のURLが更新されていることは確認できますが、アバターは更新されません。

Renato、返信ありがとうございます!他にチェックボックスはオンになっていません。

SSOシステムがアバター情報を送信しているかどうかを確認するために、詳細ログをオンにしてログを確認してみてください。

「いいね!」 1

discourse connect overrides avatar 設定を有効にして、Discourse からログアウトし、再度ログインすることを検討してください。avatar_force_update パラメータが SSO ペイロードで true に設定されている限り、この設定が有効になっていなくてもアバターを更新できることが期待されていると確信しています。これを処理するコードはかなり複雑です: discourse/app/models/discourse_connect.rb at 2ff3f44b957268718e03554fb25d485e1d449ed5 · discourse/discourse · GitHub

その設定を有効にできない場合、または何が起こっているのか気になる場合は、avatar_force_update パラメータに渡している値が Discourse によってブール値の true として解釈されていることを確認することもできます。ブール値が 0 または 1 に変換されるフレームワーク(特に WordPress)があります。その問題を回避するために、Discourse は SSO ペイロードでブール値として文字列 "true" を受け入れます。これは、ユーザーの管理ページに表示される SSO レコードの avatar_force_update フィールドの値を確認することで確認できるでしょう。または、Jay が言及した詳細ログ設定を有効にすることでも確認できます。

「いいね!」 2