新規アカウント作成ダイアログの防止

JWT ログインを行うと、以下の画面に遷移してしまいます。

私の認証サービスはユーザーを管理しており、JWT ログインのみが有効になっています。Discourse とプラットフォーム間でユーザー名が異なることを避けたいと考えています。この画面が表示されないようにするにはどうすればよいでしょうか?

残したいログインオプション以外をすべて無効にしてください。これで問題が解決します。

特に、ローカルログインを無効にしてください。

ソーシャルログインが有効になっている場合、モーダルは引き続き表示されるのでしょうか?

ログインに関連するさまざまな設定をチェックしたり、チェックを外したりしてみましたが、まだ表示されます。JWT が有効な唯一のログイン方法です。

これは discourse-jwt に関連する問題でしょうか、それともより一般的なフォームの問題でしょうか?

お気づきでなかったかもしれませんが、これはログインフォームではなく、登録フォームです。

Discourse が内部認証を使用していない場合、それらのいずれかを無効にする必要があります。

ただし、これは JWT に固有の問題である可能性があり、私は個人的に使用したことがありません。

それ以外はすべて無効になっています。おそらく GitHub - discourse/discourse-omniauth-jwt: An OmniAuth strategy that uses JSON Web Token for Single Sign-On · GitHub と関連しているのでしょう。

はい、JWT が唯一のログイン方法であっても、アカウント作成ダイアログは表示されます。Discourse が正常に機能するためには、ユーザー名とメールアドレスなどの追加データを収集する必要があります。トークンに “name” および “email” クレームとして値を渡すことで、これらのフィールドを事前に埋めることができます。

これらは常にJWTに含まれており、私は事前にこれらを埋め込んでいます。これらのフィールドの編集を禁止したいです。

あるいは、より良い方法として、フォーム自体を表示しないことです。