SSOディスコースは同じセッションでエラーが発生します

こんにちは。Discourse を通じて WordPress に SSO でログインしています。Discourse の WordPress プラグインを使用しており、最初は問題なく動作していました。

しかし、同じセッション中(ログアウトしていない状態)で、/wp-admin/ の管理者リンクにアクセスしようとすると、ダッシュボードにリダイレクトされず、ログインフォームに以下のエラーが表示されます。

Expired Nonce

セッションまたはクッキーに何らかの問題があるようです。
Google ログインによる SSO を使用しているため、ユーザーが混乱する原因となっています。

あなたが直面している問題は、サーバー上のオブジェクトキャッシュが原因であると考えられます。この問題を解決するかどうかを確認するために、WordPress テーマの functions.php ファイルに以下のようなコードを追加してみてください:

add_filter('wpdc_sso_client_query', 'wpdc_custom_sso_client_query' );
function wpdc_custom_sso_client_query() {
    return wp_generate_password( 12, false );
}

詳細については、こちらをご覧ください:Wordpress SSO Expired nonce - #15 by simon

このコードでもまだ失敗しました。
Discourse は Cloudflare と互換性がありませんが、私の Web サイトの防御のために Cloudflare を使用しています。問題ありませんか?

Cookie を削除して再度ログインすれば問題ないようですが、混乱しています。

このリンクで停止します:

/wp-login.php?discourse_sso_error=expired_nonce

Cloudflareではないと思います。回避するために設定したテスト用のルールは以下の通りです:

私が発見した興味深いテストでは、あなたのプラグインのすべてのリンクが失敗しているわけではありません。

このリンクは正常に動作します:

/?discourse_sso=7cygqwtc8aaz&redirect_to=https%3A%2F%2Fmyweb.net%2Fmy-account

つまり、SSO のパラメータ「7」は正常です

私は、ユーザーをリダイレクトするために、このパラメータにリンクをリダイレクトしようとしました。
リンクのパラメータを確認して、これを解決してください。

このリンクは、テキスト「External Login Text」で正常に動作しています。

All-Options-‹-Working24-—-working24-net

結局、解決策は見つかりましたか?私も同じ問題に直面しています。

こちらで提示されている解決策を試してみてください:Wordpress SSO Expired nonce - #15 by simon.

「いいね!」 1

ありがとうございます。適用しましたが、問題は解消されません。

@golaxo Cloudflare もご利用でしょうか?

もしそうであれば、Cloudflare を完全に無効化して、問題が解消するかご確認ください。

「いいね!」 2

助かったよ、相棒!結構な呪詛を吐きながら原因を探り当てたんだ:Paid Membership Pro プラグインが衝突を起こしていたんだ。Discourse SSO から来たユーザー向けに WordPress でコンテンツを制限する方法はまだ調べているけど、少なくとも問題の場所がわかったよ :slight_smile:

「いいね!」 2