我为我的问题做了一些研究,我认为我快成功了,但可能需要一些指导。
我基本上想将 Discourse 作为无头实现集成到我的 React 项目中,该项目已经包含用户在其自己的数据库中进行身份验证。
为此,当用户在 React 页面上登录时,它将为用户执行 SSO 以与 Discourse API 进行身份验证,以便我们可以调用适当的函数等。
所以,我首先从我的 Discourse URL 获取数据,并像这样阻止任何重定向:
const response = await fetch('https://forum.mysite.com/session/sso', {
method: 'GET',
redirect: 'manual', // Prevent automatic following of redirects
});
然后我进行所有验证,并使用以下方法将用户信息的 Payload 发送到后端:
const loginResponse = await fetch(newurl.toString(), {
method: 'GET',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
redirect: 'manual',
});
格式和签名等看起来都不错。但它给了我一个错误。所以我注释掉了它,并复制了生成的 URL 到我的浏览器中查看,它给了我这个:
Verbose SSO log: Nonce is incorrect, was generated in a different browser session, or has expired add_groups: admin: avatar_force_update: avatar_url: bio: card_background_url: confirmed_2fa: e
所以经过一些研究,我认为这些答案很接近帮助我,但我仍然不清楚该如何更改我的设置,而且 force_https 似乎不再是我们能操作的设置了(甚至不确定它有什么作用):
我觉得这可能是由不同的浏览器会话引起的,但不知道。我认为我快成功了,我只需要一点帮助。任何信息都会有帮助。谢谢!
