我在本地计算机上设置了 Discourse,并希望设置 SSO 登录。当用户点击登录时,我可以重定向用户,但在重定向回来时,我一直收到错误。我启用了日志记录,它显示:
Nonce is incorrect, was generated in a different browser session, or has expired
以下是我正在使用的 Python 文件:Discourse-setup/main.py at main · kamleshjoshi8102/Discourse-setup · GitHub
另外请注意,在我的情况下,它运行在端口 4201 上,所以我已将登录重定向到端口 4201。
simon
2024 年4 月 3 日 15:47
2
触发此错误的方法如下:
def nonce_valid?
if SiteSetting.discourse_connect_csrf_protection
nonce && @secure_session[nonce_key].present?
else
nonce && Discourse.cache.read(nonce_key).present?
end
end
它会检查 nonce 是否由 Discourse 为与将用户重定向回 Discourse 的会话相同的会话生成。
您可以尝试将 discourse_connect_csrf_protection 站点设置设置为 false。其默认值为 true。这是一个隐藏的站点设置,因此只能从 Rails 控制台禁用。
启用时,discourse_connect_csrf_protection 设置可确保整个 SSO 身份验证过程都通过浏览器重定向进行。如果您通过向 session/sso 发出后台请求来启动身份验证过程,则需要禁用它。更多详情请参见:DiscourseConnect flow no longer functions - #5 by david
1 个赞
system
(system)
关闭
2024 年5 月 3 日 15:47
3
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.