SSOを実装したPhp/LaravelプラットフォームとDiscourseを連携させています。ユーザーのカスタム画像は一度しか更新されません。しかし、Laravelプラットフォームでプロフィール画像を変更しても、ログアウトして再度ログインしても、Discourseのカスタム画像は更新されません。
'avatar_force_update’をtrueにしても、カスタム画像は上書きされません。
SSOを実装したPhp/LaravelプラットフォームとDiscourseを連携させています。ユーザーのカスタム画像は一度しか更新されません。しかし、Laravelプラットフォームでプロフィール画像を変更しても、ログアウトして再度ログインしても、Discourseのカスタム画像は更新されません。
'avatar_force_update’をtrueにしても、カスタム画像は上書きされません。
更新情報です。
SSOレコードでプロフィール写真のURLが更新されていることは確認できましたが、ログアウトして再度ログインしても、Discourseには新しいプロフィール画像が反映されません。
ブラウザを再読み込みするとどうなりますか?
discourse_connect_overrides_avatar のサイト設定は有効になっていますか?
返信ありがとうございます。ブラウザをリロードしたり、シークレットウィンドウで開いたり、ログアウトして再度ログインしても更新されません。
前述の通り、初回のみ更新されます。例えば、
SSOシステムがアバター情報を送信しているかどうかを確認するために、詳細ログをオンにしてログを確認してみてください。
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 が言及した詳細ログ設定を有効にすることでも確認できます。