フロントエンドアプリケーションから特定のDiscourseサイトへログインする方法

こんにちは。
フロントエンドアプリからDiscourseへのログインプロセスを作成しようとしています。どのようにすればよいですか?

ありがとうございます :folded_hands:

これは通常のソリューションです。

Discourse のみでユーザーを管理している場合は、リダイレクトボタンの方が簡単でしょう。

「いいね!」 1

ご返信ありがとうございます!しかし、認証方法を選択できるように、iframeを開くことはできますか?

いいえ、iframe はサポートされていません。

親サイトでユーザー アカウントを管理し、Discourse Connect で認証するか、単に Discourse へのリンクを張るかのどちらかになります。

すぐに促すためにログイン ルートにリンクすることはできますか? /login

これをどう使うのか、よく分かりません。ウェブサイトにログインボタンがあり、ユーザーが認証方法を選択する必要があるということでしょうか?このシナリオの可能なフローを教えていただけますか?

なぜウェブサイトにログインする必要があるのですか?ユーザーアカウントを管理しているのですか?

フロントエンドから投稿/トピックを作成できるようにしたいので、まず認証が必要です。理にかなっていますか?

なるほど、ある程度理解できました。要するに、「UIの一部を書き換え、API経由でのみ通信したい」ということでしょうか?

ここでは、そのための無料サポートはあまり期待できないと思いますが、以下をご覧ください。

https://meta.discourse.org/t/help-with-authenticating-user-via-api/178355/2?u=merefield

特にアプリ経由での既存の取り組みがあります。それらを調査することをお勧めします。例:

Figもありましたが、まだオープンソースではありません。

ただし、これらのソリューションには非常に高い初期開発とメンテナンスが必要であることに注意してください。最良の2つの例は放棄された(?)と思います。

あるいは、プラグインやテーマコンポーネントを使用して、ウェブサイト全体をDiscourseインスタンスとして構築することを検討してください。これにより、UIの多くの要素を書き直す必要がなくなります。

「いいね!」 1

私はDiscourse を ID プロバイダーとして使用しており、うまく機能しています。これを使用して、ウェブサイトに「ログイン」リンクを作成できます。このリンクをクリックすると、ユーザーは Discourse インスタンスに移動し、すでにログインしている場合、またはログインフローを完了した後、ユーザーはペイロードに追加された return_sso_url にリダイレクトされます。ユーザーの認証情報と情報も一緒に送信されます。この return_sso_url は、Discourse のペイロードを受信したときに、好みの方法(セッション Cookie など)で認証済みセッションを保存するウェブサイトのルートにすることができます。

「いいね!」 3

FWIW、Lexicon は放棄されておらず、現在も活発に開発中です。

@Roie_Natan さん、もし Javascript に精通しているのであれば、Lexicon のソースコードを見て、どのように実現されたかを確認することができます。

しかし、@merefield さんが指摘したように、それを解明するのに役立つ既存の投稿があります。

ユーザーセッションに関するリソースはこちらです: Storing extra data about a user's session - #3 by sam

また、@pmusaraj さんのアプリの認証フローも役立つかもしれません:

「いいね!」 3

それは素晴らしいです!訂正ありがとうございます。