そうなるはずです。SSOペイロードを生成しているアプリケーションがブール値 true を 1 に変換していないことを確認してください。それは一般的な問題です。それを回避するには、SSOペイロード内の任意のブール値を文字列 \"true\" または \"false\" に設定できます。Discourseはそれらを正しく解釈します。まずそれを確認して、問題かどうかを確認してください。他の問題である可能性もあります。avatar_force_update を処理するコードはやや複雑ですが、読みやすいです: discourse/app/models/discourse_connect.rb at 187204705323b650d61ed25862eb1a0c733aa63c · discourse/discourse · GitHub
編集: SSOペイロードのブール値の問題について、SSOペイロードを生成するプロセスで、環境がブール値のtrue/falseを文字列に変換するということの方が正確だと思います。Discourseは文字列が \"true\" または \"false\" であることを期待しています。他のプログラミング環境では、それらを異なる方法で処理する場合があります。例えば:
PHP:
wp> strval(true)
=> string(1) "1"
Rubyとは対照的に:
irb(main):001> true.to_s
=> "true"
Python (Discourseがこれをどのように処理するかはわかりません):
>>> str(True)
'True'