cmdntd
(cmdntd)
1
こんにちは。Discourse を通じて WordPress に SSO でログインしています。Discourse の WordPress プラグインを使用しており、最初は問題なく動作していました。
しかし、同じセッション中(ログアウトしていない状態)で、/wp-admin/ の管理者リンクにアクセスしようとすると、ダッシュボードにリダイレクトされず、ログインフォームに以下のエラーが表示されます。
Expired Nonce
セッションまたはクッキーに何らかの問題があるようです。
Google ログインによる SSO を使用しているため、ユーザーが混乱する原因となっています。
simon
2
あなたが直面している問題は、サーバー上のオブジェクトキャッシュが原因であると考えられます。この問題を解決するかどうかを確認するために、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
cmdntd
(cmdntd)
3
このコードでもまだ失敗しました。
Discourse は Cloudflare と互換性がありませんが、私の Web サイトの防御のために Cloudflare を使用しています。問題ありませんか?
Cookie を削除して再度ログインすれば問題ないようですが、混乱しています。
このリンクで停止します:
/wp-login.php?discourse_sso_error=expired_nonce
cmdntd
(cmdntd)
4
Cloudflareではないと思います。回避するために設定したテスト用のルールは以下の通りです:
cmdntd
(cmdntd)
5
私が発見した興味深いテストでは、あなたのプラグインのすべてのリンクが失敗しているわけではありません。
このリンクは正常に動作します:
/?discourse_sso=7cygqwtc8aaz&redirect_to=https%3A%2F%2Fmyweb.net%2Fmy-account
つまり、SSO のパラメータ「7」は正常です
私は、ユーザーをリダイレクトするために、このパラメータにリンクをリダイレクトしようとしました。
リンクのパラメータを確認して、これを解決してください。
このリンクは、テキスト「External Login Text」で正常に動作しています。

Golaxo
(Ágoston László)
6
結局、解決策は見つかりましたか?私も同じ問題に直面しています。
simon
7
「いいね!」 1
Golaxo
(Ágoston László)
8
ありがとうございます。適用しましたが、問題は解消されません。
angus
(Angus McLeod)
9
@golaxo Cloudflare もご利用でしょうか?
もしそうであれば、Cloudflare を完全に無効化して、問題が解消するかご確認ください。
「いいね!」 2
Golaxo
(Ágoston László)
10
助かったよ、相棒!結構な呪詛を吐きながら原因を探り当てたんだ:Paid Membership Pro プラグインが衝突を起こしていたんだ。Discourse SSO から来たユーザー向けに WordPress でコンテンツを制限する方法はまだ調べているけど、少なくとも問題の場所がわかったよ 
「いいね!」 2