みなさん、こんにちは。
私の状況についてお話しします。私は talk.example.com で Discourse をインストールして運用したいと考えていますが、同時に www.example.com で Web サイトを維持したいと考えています。Discourse サイトにログインすると、www サイトにも同時にログインされている状態にしたいと考えています。Discourse サイトからログアウトすれば、www サイトからもログアウトされるようにしたいのです。ここで多くのトピックを読みましたが、一般的な回答は SSO を使用するというものでした。しかし、私の状況ではそれは機能しないと思います。その理由は以下の通りです。
www.example.com のサイトは Hugo で構築された静的 Web サイトです。Jekyll をご存じない方のために説明すると、Jekyll と似たようなものです。つまり、データベースもバックエンドも一切存在しません。「アプリ」ではありません。基本的には、Discourse をこの静的サイトの疑似的なバックエンドとして使いたいと考えています。Discourse で未読の通知がある場合、静的サイトを通じてそれをユーザーに表示したいと考えています。
私が思いつく唯一の方法は、Discourse のクッキーを使用することですが、私のこれまでの調査では、Discourse はサブドメインを含まないクッキーには対応していないとのことでした。
何かアイデアはありませんか?
Falco
(Falco)
2020 年 3 月 27 日午後 4:05
2
これは興味深い課題ですね。
もしサイトがバックエンドを持つ動的なもので、Discourse との間に SSO があるなら、明確な解決策があります。バックエンドがユーザーを特定できるため、管理用 API キーを使って現在のユーザーの Discourse 通知を照会し、リクエストごとにページと一緒に送信することが可能になります。
しかし、サイトが静的ページである場合、ログイン状態は存在しないのでしょうか?
静的サイトでも動作する以下のオプションがあります:
If you grab the latest builds of Discourse you’ll get a the ability to embed topic lists in other sites via some simple Javascript and HTML.
The typical use case for this is a blog or other content driven site, where you want a widget on the side of the screen that lists topics. You can filter by category, tag, or any of the other public filter options available.
How to Embed a list of Topics
First, you must enable the embed topics list site setting.
Then, in your HTML add a <script> tag that…
Discourse has the ability to embed the comments from a topic in a remote site using a Javascript API that creates an IFRAME. For an example of this in action, check out Coding Horror’s blog . The blog is run via Ghost but the comments are embedded from his Discourse forum .
One important thing to note with this setup is that users have to navigate to your forum to post replies. This is intentional, as we feel that the posting interface on a Discourse forum is currently much richer than what we …
通知用の新しい機能を作るのは素晴らしいアイデアだと思います!
その通りです。単なる HTML、CSS、そして一般的なフロントエンドの JavaScript だけです。
理想的には、静的サイト上でブラウザ内を実行する JavaScript を使って、Discourse からデータを取得できるようにしたいと考えています。
通知はその一例で、それを埋め込む機能が非常に役立ちます。
もう一つの例として、Discourse 側でユーザーが記入できる「ユーザーフィールド」を設定できるようにし、静的サイト側でそのユーザーフィールドにアクセスしてコンテンツの表示方法を変更(JavaScript 経由)できるようにしたいです。例えば、ユーザーに合わせてコンテンツの順序をカスタマイズして並べ替えるなどです。
サポート外のハックになることは理解していますが、Discourse がセッションクッキーを設定する際、サブドメインを含めないように変更する方法で、アップデート後も維持できるような方法はありますか?