大家好,
我们正在为一个自托管的 Discourse 服务器构建一个接口。服务器是撰写本文时最新版本。我们的代码运行在不同的域上。
我们已经配置好了一切,我们收到了 Discourse 的签名 SSO 调用,并根据 此 进行了签名响应。
查看 Discourse 日志,我们的响应似乎已正确签名,并且我们返回的字段已正确解析。Nonce 也相同。尽管如此,交易总是以 419 “Nonce 不正确,是在不同的浏览器会话中生成的,或已过期” 结束。
Nonce 确实是正确的;它不可能过期,因为我们立即响应;而不同的浏览器会话——嗯,响应确实来自用户的浏览器,所以……?
在“允许的重定向域”中添加了“*”,并尝试将我们的应用程序服务器添加到 CORS 列表(并设置了相应的环境变量)。没有变化。
我们一定做错了什么……我很想得到任何帮助,让我们摆脱这个死胡同 ![]()