WordPress DiscourseConnect 客户端 - 过期 nonce

我猜想这发生在通过 Discourse 站点登录 WordPress 时。如果是这种情况,问题在于 WordPress 生成的 nonce 已过期。这在启用了对象缓存的 WordPress 网站上会发生。

一种解决方案是在所有包含“使用 Discourse 登录”链接的页面上禁用对象缓存。对于这种方法,请确保为匿名用户禁用对象缓存。

另一个解决方案在此处概述:Wordpress SSO Expired nonce - #15 by simon WordPress 主题的 functions.php 文件中。

该函数会将一个随机字符串添加到“使用 Discourse 登录”URL。该随机字符串会触发 WordPress 破坏缓存并为用户生成一个新的 nonce。@angus,这可能应该添加到插件的代码中:wp-discourse/lib/sso-client/sso-client-base.php at main · discourse/wp-discourse · GitHub nonce 而不是为每次访问生成新 nonce 的问题。

3 个赞