WordPressサイトがDiscourseのSSOプロバイダーとなっており、WPDiscourseプラグインを使用しています。フォーラムは公開されていますが、いくつかのプライベートグループがあります。
WordPressサイトからDiscourseのプライベートグループへユーザーを誘導するボタンを追加したい場合、こちらで説明されているようにSSO URLを使用しています。これにより、ユーザーは「おっと!そのページは存在しないか、非公開です。」という画面に遷移しません。
しかし、ユーザーがDiscourseでSSO経由で認証済みの場合、同じボタンを再度クリックすると、ログイン時に「ログインしたままにする」チェックボックスを選択していても、再度ログインページが表示されます。理想的には、Discourse SSOで認証されたユーザーは、プライベートグループに自由にアクセスできるべきです。
より良い設定方法はありますか?
WPログインページにコードを追加し、ユーザーが既にDiscourseにログインしているかを確認し、もしそうであればURLの「return_path」引数にあるページにリダイレクトすることを考えました。これは回避策になりますか?もしそうであれば、それを実現するためにどのような関数やAPI呼び出しを使用できますか?
ありがとうございます!
「いいね!」 1
simon
2
ユーザーが既にWordPressサイトにログインしている場合、これは発生しないはずです。この問題が発生しているユーザーがWordPressにログインしているかどうかを明確にしていただけますか?もしログインしている場合、return_path引数で設定したDiscourseのURLにサイレントリダイレクトされることが期待されます。
「いいね!」 3
angus
(Angus McLeod)
3
Hey @rodrigo.braga 
私も少し混乱しています。以下の点を確認していただけますでしょうか。
セットアップ
Wordpress は、こちらの手順に従って Discourse の DiscourseConnect プロバイダーとして設定されています。
シナリオ 1
- ユーザーは Wordpress サイトにアクセスし、Wordpress にログインしていません。
- ユーザーは Wordpress 上の
https://discourse.example.com/session/sso?return_path=/g/private_group の形式のリンクをクリックします。
- ユーザーは Wordpress へのログインを求められます。
- ユーザーは Wordpress にログインします。
- ユーザーは
https://discourse.example.com/g/private_group にリダイレクトされます。
- ユーザーは DiscourseConnect 経由で Discourse にログインしており、
private_group のメンバーであるため、private_group を表示します。
これは現在、そうなっていますか?
シナリオ 2
- ユーザーは Wordpress サイトにアクセスし、Wordpress にログインしています。
- ユーザーは Wordpress 上の
https://discourse.example.com/session/sso?return_path=/g/private_group の形式のリンクをクリックします。
- ユーザーは Wordpress へのログインを求められます。
これは現在、そうなっていますか?
「いいね!」 3
サイモンさん、ありがとうございます。はい、ユーザーはWordPressにログインしています。
私のシナリオで奇妙なのは、DiscourseConnectプロバイダーとしてWP Discourseを使用してDiscourseに接続しているメインのWordPressサイト(WPSite1)が1つあることです。
次に、WP Remote User Synch pluginを使用してユーザーデータベースをWPSite1と同期する2番目のWordPressサイト(WPSite2)があります。
しかし、私が言及した期待される動作に干渉する理由がわかりません。なぜなら、WPSite2にログインしてからWPSite1に移動すると、WPSite1にもすでにログインしているからです。
しかし、実際に起こっているのは、DiscourseConnectプロバイダーであるWPSite1にログインした後でも、https://discourse.example.com/session/sso?return_path=/g/private_groupのようなURLをクリックすると、SSO WPログインフォームに移動することです。
「いいね!」 1
アンガス様、
シナリオ2が該当します。
指示を確認しますが、SSOログインは機能するため、すべて正しく設定されていると考えています。問題は、ログインページがユーザーがすでに認証されていることを認識していないことです。
「いいね!」 1
@simonと@angus、改めてありがとう。問題がわかりました。
DiscourseConnectの設定を確認したところ、DiscourseConnectのURLがhttps://mydomain.orgに設定されていました。Discourse WPプラグインの推奨事項を確認したところ、https://www.mydomain.orgを使用するように記載されていました。wwwを追加して更新したところ、期待どおりに動作するようになりました。
ありがとうございました。
「いいね!」 2
system
(system)
クローズされました:
7
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.