custom auth systemへの統合:メールアドレスがユニークでない場合?

インストール方法のリストはこちらにあります: https://meta.discourse.org/t/set-up-a-discourse-development-environment/182882。私はDockerを使用しない開発サイト(Ubuntuガイドを使用)を持っています。もし可能であれば、Dockerを使用しないアプローチで最良の結果が得られると思います。私がそれを使用する理由の1つは、ローカルで開発しているDiscourseと他のアプリケーション間のAPIリクエストのネットワークの問題に対処する必要がないことです。Dockerよりも高速でもあります。

そうなるはずです。SSOペイロードを生成しているアプリケーションがブール値 true1 に変換していないことを確認してください。それは一般的な問題です。それを回避するには、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'
「いいね!」 2