无法在 localhost 上测试 Discourse Connect

大家好,

我们计划将 Discourse 徽章与我们的平台集成。也就是说,允许用户将其 Discourse 账户与我们平台上的账户进行关联。

为了链接账户,我们原本打算使用 Discourse Connect。然而,在重定向过程中我们遇到了 CORS 错误:

Access to fetch at 'https://forum.freecodecamp.org/session/sso_provider?sso=<hash>'
(redirected from 'http://localhost:3000/discourse/connect') from origin
'http://localhost:8000' has been blocked by CORS policy:
Response to preflight request doesn't pass access control check:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
If an opaque response serves your needs, set the request's mode to 'no-cors'
to fetch the resource with CORS disabled.

我尝试了多种 Discourse Connect 的设置,包括将服务器、客户端和 Discourse 地址添加到 discourse connect provider secrets 中,但均无济于事。

澄清一下:我们并不打算使用 Discourse Connect 来登录任何内容。

相关位置

  • freecodecamp.org - 平台域名
  • forum.freecodecamp.org - Discourse 实例子域名
  • localhost:3000localhost:8000 - freecodecamp.org 开发环境的服务器和客户端

相关代码:

return res.redirect(
    `${FORUM_LOCATION}/session/sso_provider?sso=${URL_ENCODED_PAYLOAD}&sig=${HEX_SIGNATURE}`
  );

任何帮助都将不胜感激。

我认为这种重定向流程是用于内容框架的,而不是 fetch 调用。例如,任何需要重定向到登录页面且无法重定向回来的情况都将无法工作,此外,跨域 Cookie 在这种情况下也会成为问题。

不如试试传统的弹窗窗口?:stuck_out_tongue: