SSO リダイレクトの問題

Discourse を WP Discourse プラグイン経由で WordPress と連携させ、WordPress を Discourse Connect プロバイダーとして使用していますが、認証されていないユーザーが Discourse インスタンスを訪問し、ログインが必要なボタンをクリックすると、無限リダイレクトループに陥る問題が発生しています。

期待される動作は以下の通りです。ユーザーが Discourse ログインボタンをクリック → ユーザーは WordPress ログインページにリダイレクトされる → ユーザーが認証を行うと、以前いた Discourse ページにリダイレクトされる。現在、ユーザーが すでに 認証されている状態で Discourse インスタンスを訪問した場合、問題はありません。このエラーは、認証されていないユーザーが最初に Discourse インスタンスを訪問した場合に発生します。

現在の動作は以下の通りです。ユーザーが Discourse ログインボタンをクリックユーザーは https://[discourse-instance]/session/sso?return_path=%2Ft%2F[ユーザーが以前いた Discourse ページ]%2F16 にリダイレクトされるユーザーは https://[wordpress-site]/?sso=[SSO トークン]%3D%3D&sig=[署名トークン] にリダイレクトされるユーザーは https://[wordpress-site]/?sso=[SSO トークン]%3D%3D&sig=[署名トークン]&redirect_to=%2F%3Fsso%[SSO トークン]%253D%253D%26sig%3D[署名トークン] にリダイレクトされるそして、ブラウザが「リダイレクトが多すぎます」というエラーを出すまで、このサイクルが再帰的に繰り返されます。

この問題の解決策に関するスレッドは見つかりませんでしたが、最も近いものは以下です。

しかし、SSL はすべての場所で有効になっており、この問題はすべてのブラウザで発生します。この問題を解決するための提案はありますか?

Chrome 97 は、リダイレクト時の Cookie 処理に関するバグとともにリリースされました。このバグは、特定の状況下で DiscourseConnect を破損させる可能性があります。Google による修正のロールアウトを待つ間、Discourse に回避策を追加しました。Discourse サイトを最新バージョンにアップグレードすると、問題が解決するはずです。お試しいただき、動作するかどうかお知らせいただけますでしょうか。

(回避策はこのコミットで追加されました)

「いいね!」 3

返信ありがとうございます。最新バージョンであることを確認しましたが、残念ながらエラーはまだ残っています。フォーラムはDiscourseでホストしているので、定期的に自動更新されるはずです。エラーは以前と同じですが、他に試すべきことはありますか?Discourseホスティング内の設定が原因である可能性はありますか?

「いいね!」 1

@dbwhiteさん、お手数ですが、以下の手順をお願いできますでしょうか。

  1. WP Discourse の「DiscourseConnect」設定で「Verbose DiscourseConnect Logs」を有効にする
  2. 問題を再現する
  3. WP Discourse の「Logs」に移動してダウンロードする

その後、ログをプライベートメッセージで送っていただければ、何が起こっているのか詳しく確認いたします。ログには個人を特定できる情報や機密情報は含まれておりませんのでご安心ください。

「いいね!」 2

@angus@dbwhite WordPressサイトでWooCommerceを使用している場合、問題の原因となる可能性があります。WooCommerceは、DiscourseConnectで問題を引き起こす可能性のあるログインリダイレクトを追加します。これらのリダイレクトは、GitHub - scossar/wp-discourse-woocommerce-support: Integrates the wp-discourse plugin with WooCommerce をインストールして有効にするか、そのプラグインのreadmeで提供されているコードスニペットをサイトのテーマに追加することによって上書きできます。

ここで説明されているリダイレクトの問題は、過去に他のWooCommerceサイトで発生したものと同様に見えます。それらの場合、私がリンクしたWordPressプラグインをインストールすることで解決されました。

これが問題の原因である場合、WP DiscourseプラグインにWooCommerceサポートを直接追加することを検討すべきかどうか疑問に思います。

「いいね!」 4

それは非常に役立つでしょう。

OPが説明した問題と全く同じではありませんが、ログイン後にDiscourseフォーラムの元の場所へユーザーをリダイレクトする際に壁にぶつかっています😞

WP Discourse WooCommerce Support プラグインをインストールして有効にすると、問題は解決しますか?

プラグインの競合に関するアップデートです。使用していたプラグインの1つが wp_login_url() WordPress関数の戻り値に干渉していたことが判明しました。そのプラグインを削除したところ、すべてが期待どおりに機能しました!

「いいね!」 1

投稿が新しいトピックに分割されました:DiscourseConnectとWordPressを使用する際のRailsエラー