SSOが有効な場合にnode.js (discourse-sdk) APIを使用する

Discourse フォーラムとの簡単な統合のために、node.js API クライアント(https://github.com/99x/discourse-sdk)を使用しています。

しかし、私のフォーラムが Discourse SSO(別名 DiscourseConnect)用に設定されているため、すぐに問題に直面しました。API リクエストを行うと、API コンシューマーが SSO プロバイダーのウェブサイトに「ログイン」していないため、エラーが発生しました。

実験として、Discourse SDK の node.js API クライアントを修正し、リクエストに SSO プロバイダーのウェブサイトが期待するクッキーを含めるように変更しました。これにより、少し先まで進むことができました。

ただし、私の node.js コードは、Discourse フォーラムの HTML レンダリングを含むペイロードを受け取り、期待していたデータ(JSON 形式)を受け取ることができませんでした。

ここで間違ったアプローチを取っているのかもしれません。API を使用する際に Discourse SSO を回避する方法はありませんか(例えば、クエリ文字列パラメータ、別の API エンドポイント、あるいは Discourse の設定変更など)。

ご助力をいただければ幸いです。

ありがとうございます。

ああ、自分の問題を自分で解決できたかもしれません。

discourse-sdk を変更して、リクエストに「Accept」json ヘッダーを含める必要がありました:

request.get({
        url: getUrl,
        headers: {
            'Accept': 'application/json'
        },
    },

どうやら discourse-sdk は、SSO の問題とは別に、最初から動作していなかったようです。

「いいね!」 1