エラーをトリガーしているメソッドは次のとおりです。
def nonce_valid?
if SiteSetting.discourse_connect_csrf_protection
nonce && @secure_session[nonce_key].present?
else
nonce && Discourse.cache.read(nonce_key).present?
end
end
これは、nonce が Discourse によって生成され、ユーザーを Discourse にリダイレクトするのと同じセッションで生成されたことを確認しています。
discourse_connect_csrf_protection サイト設定を false に設定してみてください。デフォルト値は true です。これは非表示のサイト設定であるため、Rails コンソールからのみ無効にできます。
discourse_connect_csrf_protection 設定が有効な場合、SSO 認証プロセス全体がブラウザのリダイレクトを通じて行われることを保証します。バックグラウンドリクエスト session/sso を開始して認証プロセスを開始する場合は、無効にする必要があります。詳細はこちら: DiscourseConnect flow no longer functions - #5 by david.