alehandrof
(Alex Armstrong)
1
皆さん、こんにちは。
ウェブサイトの一部のページへのアクセスを、プライベートDiscourseのメンバーアカウントを持っているかどうかによって制限したいと思います。おそらく、各ページで、ユーザーがその時点でDiscourseにログインしているかどうかを確認することで、これを実現するでしょう。
使用するのに適切なツールは次のとおりだと思います。GitHub - discourse/discourse-auth-proxy: An http proxy that uses the DiscourseConnect protocol to authenticate users
これを使用するためのステップバイステップのドキュメントはありますか?
Discourseサイトと同じDigitalOceanドロップレットにインストールできますか、それとも別の場所にホストする必要がありますか?
alehandrof
(Alex Armstrong)
2
Discourse Auth Proxy の使用について、いくつか質問があります。
Digital Ocean のドロップレットに Discourse を設置しており、別のサーバーに PHP ウェブサイトがあります。
simon
3
DiscourseConnect(Discourseを認証プロバイダーとして使用)でこれを行うことができます:https://meta.discourse.org/t/use-discourse-as-an-identity-provider-sso-discourseconnect/32974。
まだ試していませんが、prompt パラメータがケースに役立つかもしれません。
prompt: prompt=noneの場合、SSOリクエストは「確認のみ」のリクエストとして扱われます。ブラウザ/デバイスがすでにDiscourseにログインしている場合、Discourseは通常どおり、ユーザー認証情報を含む成功したSSO応答を返します。ブラウザ/デバイスがまだログインしていない場合、Discourseはユーザーにログインを求めず、ユーザー情報ではなく failed=true パラメータを含むSSO応答をすぐに返します。これにより、ユーザーがログインダイアログに誘導されることなく、ログインしているかどうかを照会するメカニズムが提供されます。
「いいね!」 1
alehandrof
(Alex Armstrong)
4
これは有望そうですね、@simon さん。enable discourse connect を有効にしなくても DiscourseConnect が機能するとは知りませんでした。どうやら機能するようです!
いくつかテストを実行して、結果を報告します。この方向性を示してくれてありがとうございます!
「いいね!」 1
simon
5
Discourse を認証プロバイダーとして使用することが、その名前(DiscourseConnect)のせいで見過ごされているのではないかと疑問に思っています。例えば、ここで投稿に DiscourseConnect という用語を追加すると、Discourse の外部サイトを認証プロバイダーとして使用することについてのトピックへのリンクが作成されます。認証プロバイダーとして Discourse を使用することは、私が Discourse サイトを持つ主な理由の 1 つです。
参考までに、WordPress プラグインは Discourse を認証プロバイダーとして機能させることができます。関連するコードはこちらです: wp-discourse/lib/sso-client at main · discourse/wp-discourse · GitHub. コードはやや複雑すぎるかもしれません。
以下は、Remix/React アプリ向けのより簡単な実装です: discourse_remix_comments/app/routes/login.tsx at main · scossar/discourse_remix_comments · GitHub. TypeScript の部分は無視すれば、それほど複雑ではありません。
「いいね!」 3
alehandrof
(Alex Armstrong)
6
@simon 返信が遅くなり申し訳ありません。以前のあなたの提案が正しい答えだと思います。サイトへの実装に苦労していますが、問題は主に、半カスタムCMSであり、多くの不安定なコードが邪魔になっていることのようです。
「いいね!」 1
system
(system)
クローズされました:
7
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.